一、简介

💬概述: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);
12-09 14:46