• JdbcTemplate操作数据库


    JdbcTemplate操作数据库(修改和删除)

    • 修改
    1. // 修改
    2. @Override
    3. public void updateBook(Book book) {
    4. String sql = "update t_book set username = ?, ustatus = ? where user_id = ?";
    5. Object[] args = {book.getUsername(), book.getUstatus(), book.getUserId()};
    6. int update = jdbcTemplate.update(sql, args);
    7. System.out.println(update);
    8. }
    9. //测试
    10. @Tes
    11. public void testJdbcTemplateUpdate() {
    12. ApplicationContext context = new ClassPathXmlApplicationContext("Bean.xml");
    13. BookService bookService = context.getBean("bookService", BookService.class);
    14. Book book = new Book();
    15. book.setUserId("3");
    16. book.setUsername("java");
    17. book.setUstatus("c");
    18. bookService.updateBook(book);
    19. }
    • 删除
    1. // 删除
    2. @Override
    3. public void delete(String id) {
    4. String sql = "delete from t_book where user_id = ?";
    5. int delete = jdbcTemplate.update(sql, id);
    6. System.out.println(delete);
    7. }
    8. //测试
    9. @Test
    10. public void testJdbcTemplatedelete() {
    11. ApplicationContext context = new ClassPathXmlApplicationContext("Bean.xml");
    12. BookService bookService = context.getBean("bookService", BookService.class);
    13. Book book = new Book();
    14. bookService.delete("4");
    15. }

    JdbcTemplate操作数据库(查询)

    a. 查询返回某个值

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

    • 使用queryForObject(String sql, Class requireType)

      • 第一个参数:sql语句
      • 第二个参数:返回类型Class
    1. //查询数据库的总记录数
    2. int selectCount();
    3. // 查询表中的记录数
    4. @Override
    5. public int selectCount() {
    6. String sql = "select count(*) from t_book";
    7. Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
    8. return count;
    9. }
    10. //查询表记录数
    11. public int findCount(){
    12. return bookDao.selectCount();
    13. }
    14. @Test
    15. public void testJdbcTemplatecount() {
    16. ApplicationContext context = new ClassPathXmlApplicationContext("Bean.xml");
    17. BookService bookService = context.getBean("bookService", BookService.class);
    18. int count = bookService.findCount();
    19. System.out.println(count);
    20. }

    b. 查询返回对象

    • 场景:查询图书详情
    • JdbcTemplate实现查询返回对象queryForObject(String sql, RowMapper rowMapper, Object... args)
      • 第一个参数:sql语句
      • 第二个参数:RowMapper是接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装
      • 第三个参数:sql语句中?的值
    1. Book findBookInfo(String id);
    2. // 查询返回对象
    3. @Override
    4. public Book findBookInfo(String id) {
    5. String sql = "select * from t_book where user_id = ?";
    6. // 调用方法实现
    7. Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper(Book.class), id);
    8. return book;
    9. }
    10. //查询返回对象
    11. public Book findOne(String id){
    12. return bookDao.findBookInfo(id);
    13. }
    14. @Test
    15. public void testJdbcTemplatefindBookInfo() {
    16. ApplicationContext context = new ClassPathXmlApplicationContext("Bean.xml");
    17. BookService bookService = context.getBean("bookService", BookService.class);
    18. Book book = bookService.findOne("1");
    19. System.out.println(book);
    20. }

    c. 查询返回集合

    • 场景:查询图书列表

    • 调用JdbcTemplate方法实现查询返回集合query(String sql, RowMapper rowMapper, Object... args)

      • 第一个参数:sql语句
      • 第二份参数:RowMapper接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装
      • 第三个参数:sql语句中?的值
    1. List findAllbook();
    2. @Override
    3. public List findAllbook() {
    4. String sql = "select * from t_book";
    5. // 调用方法
    6. List bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper(Book.class));
    7. return bookList;
    8. }
    9. public List findAllbook(){
    10. return bookDao.findAllbook();
    11. }
    12. @Test
    13. public void testJdbcTemplatefindAllbook() {
    14. ApplicationContext context = new ClassPathXmlApplicationContext("Bean.xml");
    15. BookService bookService = context.getBean("bookService", BookService.class);
    16. List allbook = bookService.findAllbook();
    17. System.out.println(allbook);
    18. }

     JdbcTemplate操作数据库(批量操作)

    • 批量操作:操作表里面的多条记录

    • JdbcTemplate实现批量添加操作batchUpdate(String sql, List)

      • 第一个参数:sql语句
      • 第二个参数:List集合,添加多条记录数据
    • 批量添加
    1. // 批量添加
    2. @Override
    3. public void addAllBook(List batchargs) {
    4. String sql = "insert into t_book values(?,?,?)";
    5. int[] ints = jdbcTemplate.batchUpdate(sql, batchargs);
    6. System.out.println(Arrays.toString(ints));
    7. }
    8. // 批量添加测试
    9. List batchArgs = new ArrayList<>();
    10. Object[] o1 = {"1", "java", "a"};
    11. Object[] o2 = {"3", "c++", "a"};
    12. Object[] o3 = {"4", "mysql", "a"};
    13. batchArgs.add(o1);
    14. batchArgs.add(o2);
    15. batchArgs.add(o3);
    16. // 调用批量添加
    17. bookService.batchAdd(batchArgs);
    • 批量更新
    1. // 批量更新
    2. @Override
    3. public void updateAllBook(List batchargs) {
    4. String sql = "update t_book set username = ?, ustatus = ? where user_id = ?";
    5. int[] ints = jdbcTemplate.batchUpdate(sql, batchargs);
    6. System.out.println(Arrays.toString(Arraysints));
    7. }
    8. // 批量更新测试
    9. List batchArgs = new ArrayList<>();
    10. Object[] o1 = {"java", "b", "1"};
    11. Object[] o2 = {"c++", "b", "3"};
    12. Object[] o3 = {"mysql", "b", "4"};
    13. batchArgs.add(o1);
    14. batchArgs.add(o2);
    15. batchArgs.add(o3);
    16. // 调用批量更新
    17. bookService.batchUpdate(batchArgs);

  • 相关阅读:
    Tomcat域名访问文件出现访问不到的问题
    {大厂漏洞 } OA产品存在SQL注入
    Dlib+Opencv库实现疲劳检测
    java.lang.ClassNotFoundException:如何解决
    计算机毕设(附源码)JAVA-SSM绩效考核管理系统
    P1443 马的遍历
    Android设计模式--工厂模式
    WPF转义字符
    Spring【五大类注解的存储和读取Bean方法注解】
    基于gis三维可视化的智慧城市行业运用
  • 原文地址:https://blog.csdn.net/m0_61916154/article/details/127038559