一、简介
💬概述:JDBCTemplate是
🔑作用:简化JDBC的使用,更加方便地对数据库进行操作
🔑使用步骤
① 导入相关jar 包:druid…jar、mysql-connector-java-…jar、spring-jdbc-…jar、spring-tx-…jar、(spring-orm-…jar)
② 在spring 配置文件中配置druid数据库连接池,这里使用引入外部属性文件的方式(需要先引入context名称空间),也可以直接把值写上
<!-- 引入外部属性文件(jdbc.properties) -->
<context:property-placehoder location="classpath:jdbc.properties"/>
<!-- 配置druid数据库连接池 -->
<bean id="ds" class="com.alibaba.druid.pool.DriverDataSource">
<property name="driverClassName" value="${prop.driverClass}"></property>
<property name="url" value="${prop.url}"></property>
<property name="username" ref="${prop.username}"></property>
<property name="password" value="${prop.password}"></property>
</bean>
③ 在spring 配置文件中,并(jdbcTemplate中一个属性)
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 注入jdbcTemplate 属性 -->
<property name="dataSource" ref="ds"></property>
</bean>
④ 创建配置类,开启组件扫描(或者在spring 配置文件配置)
@Configuration
@ComponentScan(basePackages = {"com.Key"})
public class SpringConfig {
// code...
}
⑤ 分别创建service层和dao层的实现类,在service层中添加dao类的成员变量,在dao层中添加jdbcTemplate成员变量,并使用注解方式创建对象和注入属性
-
UserServiceImpl
@Service("uService") public class UserServiceImpl implements UserService { // 添加dao 层成员变量 @Autowried private UserDao userDao; // code... }
-
UserDaoImpl
@Repository("uDao") public class UserDaoImpl implements UserDao { // 添加jdbcTemplate 成员变量 @Autowried private JdbcTemplate jt; // code... }
二、实现CRUD
2.1 增删改操作
① 创建带占位符的SQL语句字符串
String sql = "insert into user values(null,?,?)";
② 创建对象数组Object[],Object[]中的元素值对应SQL语句中每一个占位符
// 假设数据库表对象的实体类为User(外部传进来)
Object[] args = {user.getName(), user.getAge()};
③ 调用jdbcTemplate的方法——update()
jt.update(sql, args);
2.2 查询操作
🔑 查询返回值为普通类型
① 创建SQL语句字符串
String sql = "select count(*) from user";
② 调用jdbcTemplate的方法——queryForObject()
jt.queryForObject(sql, Integer.class);
🔑查询返回值为对象类型
① 创建SQL语句
String sql = "select * from user where id = ?";
② 调用jdbcTemplate的方法——queryForObject()
User u = jt.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
🔑查询返回值为集合类型
① 创建SQL语句
String sql = "select * from user";
② 调用jdbcTemplate的方法——query()
List<User> uList = jt.query(sql, new BeanPropertyRowMapper<User>(User.class));
🔑批量操作
① 创建SQL语句(就是简单的添加语句)
String sql = "insert into user value(null, ?, ?)";
② 调用jdbcTemplate 的方法——batchUpdate()
// 外部传入的List集合——batchA
jt.batchUpdate(sql, batchArgs);