Spring入门第3天--JDBC Template开发入门
2016-06-23 21:41
363 查看
文档版本 | 开发工具 | 测试平台 | 工程名字 | 日期 | 作者 | 备注 |
---|---|---|---|---|---|---|
V1.0 | 2016.06.23 | lutianfei | none |
Spring JdbcTemplate
JdbcTemplate模板与DbUtils工具类比较类似Spring对持久层技术支持
JDBC : org.springframework.jdbc.core.JdbcTemplateHibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplate
MyBatis : org.springframework.orm.ibatis.SqlMapClientTemplate
JPA : org.springframework.orm.jpa.JpaTemplate
开发JDBCTemplate入门
第一步:引入相应jar包:spring-tx-3.2.0.RELEASE.jar
spring-jdbc-3.2.0.RELEASE.jar
mysql驱动.
第二步:创建applicationContext.xml
第三步:编写一个测试类
@Autowired @Qualifier("jdbcTemplate") private JdbcTemplate jdbcTemplate; @Test public void demo2(){ jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))"); }
配置连接池
在实际开发中,通过Spring配置文件来配置JdbcTemplate常用数据源
Spring 数据源实现类 DriverManagerDataSource
DBCP 数据源 BasicDataSource
C3P0 数据源 ComboPooledDataSource
Spring默认的连接池
<!-- 配置Spring默认的连接池 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///spring3_day02"/> <property name="username" value="root"/> <property name="password" value="123"/> </bean>
DBCP连接池
导入jar包:com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
<!-- 配置DBCP连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///spring3_day02"/> <property name="username" value="root"/> <property name="password" value="123"/> </bean>
C3P0连接池
导入jar包:com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
<!-- 配置c3p0连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql:///spring3_day02"/> <property name="user" value="root"/> <property name="password" value="123"/> </bean>
使用properties文件配置数据库连接基本参数
在src下创建jdbc.propertiesjdbc.driver = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql:///spring3_day02 jdbc.user = root jdbc.password = 123
在applicationContext.xml 中使用属性文件配置的内容
第一种写法:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"></property> </bean>
第二种写法: 先引入Context标签头
<context:property-placeholder location="classpath:jdbc.properties"/>
JdbcTemplate的CRUD的操作
为了方便DAO中注入JdbcTemplate,Spring为每一个持久化技术都提供了支持类JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
MyBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
基本增删改操作
插入操作String sql = “insert into customers values(null,?)”;
jdbcTemplate.update(sql, “小丽”);
修改操作
String sql = “update customers set name= ? where id =?”;
jdbcTemplate.update(sql, “小明”, 1);
删除操作
String sql = “delete from customers where id =?”;
jdbcTemplate.update(sql, 1);
查询操作
简单查询:例一 : queryForInt 查询int类型
String sql = “select count(*) from customers”;
int count = jdbcTemplate.queryForInt(sql);
例二 : queryForObject 查询对象类型
String sql = “select name from customers where id = ?”;
String name = jdbcTemplate.queryForObject(sql, String.class, 2);
这里String.class是返回类型 , 2是customer的id参数
复杂查询:(返回对象,和对象集合)
查询单个对象 :
queryForObjectString sql,RowMapper<T> rowMapper,Object... args);
查询多个对象的集合:
query(String sql,RowMapper<T> rowMapper,Object... args);
eg:使用匿名内部类来处理的方式:
public User findById(int id){ String sql = "select * from user where id = ?"; User user = this.getJdbcTemplate().queryForObject(sql, new UserRowMapper(), id); return user; } public List<User> findAll(){ String sql = "select * from user"; return this.getJdbcTemplate().query(sql, new UserRowMapper()); } class UserRowMapper implements RowMapper<User>{ /** * rs:结果集. * rowNum:行号 */ public User mapRow(ResultSet rs, int rowNum) throws SQLException { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); return user; }
相关文章推荐
- ElasticSearch Java Api -检索索引库
- Java注解
- windows下java环境变量配置
- 接口添加默认方法以及静态方法
- 50. Spring Boot日志升级篇—log4j【从零开始学Spring Boot】
- Spring 编码过滤 -- 解析Filter实现原理
- Java:按值传递还是按引用传递详细解说
- Spring 之 AOP
- 毕向东Java视频学习笔记【Day09 继承+接口+抽象类】
- 设计模式-简单工场模式
- Hibernate框架常用映射
- Spring注解@Component、@Repository、@Service、@Controller区别
- Java 静态语句块、语句块、构造函数
- Java IO流的一个小工具
- Java 4种方法实现选择排序算法
- myeclipse10运用git过程
- 【SpringMVC学习07】SpringMVC中的统一异常处理
- SpringMvc Dao jdbcTemplate设置不自动提交(手动提交)(适用商品抢购等事务)
- springMVC注解
- 专业PHP 7 IDE - Eclipse PDT 4.0 终于出世