Spring的JDBC模板
2016-12-21 16:15
113 查看
Spring对持久层技术支持
JDBC : org.springframework.jdbc.core.JdbcTemplate
Hibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplate
IBatis(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驱动.
第二步:编写一个测试类
配置连接池
Spring默认的连接池
测试类
DBCP连接池
导入jar包
com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
C3P0连接池
导入jar包
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
参数设置到属性文件中
在src下创建jdbc.properties
需要在applicationContext.xml 中使用属性文件配置的内容.
第一种写法
第二种写法(需要引入context标签的头)
案例
JdbcTemplate的CRUD的操作
Spring框架中提供了对持久层技术支持的类
JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
JDBC : org.springframework.jdbc.core.JdbcTemplate
Hibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplate
IBatis(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驱动.
第二步:编写一个测试类
@Test public void demo1(){ // 创建连接池: DriverManagerDataSource dataSource = new DriverManagerDataSource(); // 设置参数: dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql:///spring3_day02"); dataSource.setUsername("root"); dataSource.setPassword("123"); // 使用JDBC的模板: JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))"); }
配置连接池
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> <!-- 定义jdbctemplate --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean>
测试类
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class SpringTest1 { @Autowired @Qualifier("jdbcTemplate") private JdbcTemplate jdbcTemplate; @Test public void demo2(){ jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))"); } }
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>
参数设置到属性文件中
在src下创建jdbc.properties
jdbc.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"/>
案例
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"></property> </bean> --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置c3p0连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 定义jdbctemplate --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> </beans>
JdbcTemplate的CRUD的操作
Spring框架中提供了对持久层技术支持的类
JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置c3p0连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 定义jdbctemplate --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="userDao" class="cn.yzu.spring3.demo2.UserDao"> <property name="jdbcTemplate" ref="jdbcTemplate"/> </bean> </beans>
public class UserDao extends JdbcDaoSupport{ public void add(User user){ String sql = "insert into user values (null,?)"; this.getJdbcTemplate().update(sql, user.getName()); } public void update(User user){ String sql = "update user set name = ? where id = ?"; this.getJdbcTemplate().update(sql, user.getName(),user.getId()); } public void delete(User user){ String sql = "delete from user where id = ?"; this.getJdbcTemplate().update(sql, user.getId()); } public int findCount(){ String sql = "select count(*) from user"; return this.getJdbcTemplate().queryForInt(sql); } public String findNameById(int id){ String sql = "select name from user where id = ?"; return this.getJdbcTemplate().queryForObject(sql, String.class, id); } 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; } } }
相关文章推荐
- 利用SPRING JDBC 和模板框架实现SQL可配置
- spring学习笔记6——JDBC模板
- Spring之JDBC模板jdbcTemplate
- Spring与Dao-Jdbc模板-使用Spring的JUnit4测试
- Spring 知识点整理 之 JDBC模板
- Spring 中的jdbc模板介绍
- Spring学习-25:Spring中的JDBC Template(JDBC模板):设置参数到属性文件
- Spring之JDBC模板(手写)
- 【Spring实战】—— 15 Spring JDBC模板使用
- Spring学习-23:Spring中的JDBC Template(JDBC模板)快速入门
- Eclipse中利用Spring的JDBC模板写DAO
- 【Spring实战】—— 15 Spring JDBC模板使用
- Spring整合JDBC模板方法设计模式之基于组合的实现
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
- spring-JDBC模板操作
- 详细解读Spring2.5 +Struts1.3 框架(使用Spring声明式事物管理和springjjdbc模板)
- Spring整合JDBC模板方法设计模式之基于继承的实现
- spring jdbc模板 数据库访问例子
- Spring中利用JDBC模板完成SQLServer数据库(MySQL一样)各种操作
- Spring学习-24:Spring中的JDBC Template(JDBC模板):默认连接池、DBCP连接池、C3P0池的配置