Spring基础——JdbcTemplate

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

准备工作

1.引入相关依赖

2.配置数据库连接文件

<!--数据库连接池-->
<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="123456"/>
    <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" value="dataSource"></property>
    </bean>

4.编写相关类

@Service
public class BookService {
    @Autowired
    private BookDao bookDao;

}
@Repository
public class BookDaoImpl implements BookDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

}

JdbcTemplate操作数据库

添加操作

   @Override
    public void add(Book book) {
        //定义sql语句
        String sql = "insert into t_book values(?,?,?)";
        //调用更新方法,返回受影响的行数
        int row = jdbcTemplate.update(sql, book.getUserId(), book.getUsername(), book.getUstatus());
        System.out.println("添加成功" + row);
    }
    //更新方法,args[]表示传入占位符内容

修改操作

    @Override
    public void updateBook(Book book) {
        //定义sql语句
        String sql = "update t_book set username=?,ustatus=? where user_id=?    ";
        int row = jdbcTemplate.update(sql, book.getUsername(), book.getUstatus(), book.getUserId());
        System.out.println("更新成功" + row);
    }

删除操作

    @Override
    public void deleteBook(int id) {
        //定义sql语句
        String sql = "delete from t_book where user_id=?";
        int row = jdbcTemplate.update(sql, id);
        System.out.println("删除成功" + row);

    }

查询操作

查询表里有多少条记录,返回的是某个值

    //查询记录数
    @Override
    public int selectCount() {
        String sql = "select count(*) from t_book";
        int result = jdbcTemplate.queryForObject(sql, Integer.class);
        return result;
    }

查询内容详情,返回对象

    //查询返回单个对象
    @Override
    public Book findBookInfo(Integer id) {
        String sql = "select * from t_book where user_id=?";
        Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
        return book;
    }

返回集合

    //查询返回集合
    @Override
    public List<Book> findBookList() {
        String sql = "select * from t_book";
        //返回一个集合对象
        List bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
        return bookList;
    }

批量操作

批量添加数据(batchUpdate)

    //批量添加操作
    @Override
    public void batchAddBook(List<Object[]> batchArgs) {
        String sql = "insert into t_book values(?,?,?)";
        int[] rows = jdbcTemplate.batchUpdate(sql, batchArgs);
        System.out.println(Arrays.toString(rows));
    }

批量修改和批量删除实现过程类似,只是sql语句和传入参数内容不同

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值