Spring-0215

Jdbc Template

JdbcTemplate概念和准备

  1. 什么是JdbcTemplate?

  1. Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

  1. 准备工作

  1. 引入相关依赖:

  1. mysql-connector-java

  1. druid

  1. spring-jdbc

  1. spring-tx:管理事务的依赖

  1. spring-orm:整合其他框架的依赖

  1. 在spring配置文件配置数据库连接池

<!-- 数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
	<property name="url" value="jdbc:mysql:///user_db" />
	<property name="username" value="root" />
	<property name="password" value="root" />
	<property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>
  1. 配置JdbcTemplate对象,注入DataSource

<!-- JdbcTemplate对象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
       <!-- 注入DataSource  -->
       <property name="dataSource" ref="dataSource"></property>
</bean>
  1. 创建service类注入dao对象,创建dao类,在dao注入jdbcTemplate对象

  1. 使用@AutoWired注解

  1. JdbcTemplate操作数据库

  1. 对应数据库创建实体类

  1. 编写Service和Dao

  1. 在dao进行数据库添加操作

  1. 调用JdbcTemplate中update方法实现添加操作(sql语句参数,可变参数,设置sql语句值)

@Repository
public class BookDaoImpl implements BookDao{

    //  注入JdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;


    @Override
    public void addBook(Book book) {

        String sql = "insert into t_book values(?,?,?)";
        Object[] args = { book.getUserID(), book.getUserName(), book.getuStatus()};
        int update = jdbcTemplate.update(sql,args);
        System.out.println(update);
        
    }
}
  1. 测试

  1. Jdbc更新、删除功能

@Override
public void updateBook(Book book) {
    String sql = "update t_book set user_name=?,u_status=? where user_id=?";
    Object[] args = {  book.getUserName(), book.getuStatus(),book.getUserID()};
    int update = jdbcTemplate.update(sql, args);
    System.out.println(update);
}

@Override
public void delete(String id) {
  String sql = "delete from t_book where user_id=?";
  int update = jdbcTemplate.update(sql, id);
  System.out.println(update);
}
  1. Jdbc查询数据库(返回一个值)

@Override
public int selectCount() {
    String sql = "select count(*) from t_book";
    return jdbcTemplate.queryForObject(sql,Integer.class);
}
  1. Jdbc查询返回对象

@Override
public Book selectById(String id) {

    String sql = "select * from t_book where user_id=?";
    //  第二个参数:RowMapper,是接口,返回不同类型的数据,使用这个接口里面实现类完成数据封装
    return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<Book>(Book.class),id);
}
  1. Jdbc查询返回集合

@Override
public List<Book> selectBooks() {
    String sql = "select * from t_book";
    return jdbcTemplate.query(sql,new BeanPropertyRowMapper<Book>(Book.class));
}
  1. Jdbc批量添加操作

batchUpdate(String sql, List<Object> batchArgs)

@Override
public void batchAdd(List<Object[]> batchArgs) {
    String sql = "insert into t_book values(?,?,?)";
    int[] batchUpdate = jdbcTemplate.batchUpdate(sql, batchArgs);
    System.out.println(Arrays.toString(batchUpdate));
}
  1. Jdbc批量删除、修改

@Override
public void batchUpdate(List<Object[]> batchArgs) {
    String sql = "update t_book set user_name=?,u_status=? where user_id=?";
    int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
    System.out.println(Arrays.toString(ints));
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值