• JDBCTemplate


    1. 介绍

      JDBCTemplate是Spring框架提供的对JDBC封装对象,目的是简化JDBC开发,是因为传统JDBC代码有着大量的重复。

    2. 加载jar包

      如果是Maven/Gradle项目则从Maven中央仓库配置,如果是要手动导入,则从FTP下载。

      (1) Apache Commons Logging:http://repo1.maven.org/maven2/commons-logging/commons-logging/

      <!-- Maven -->
      <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
      <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>1.2</version>
      </dependency>
    
      // Gradle
      // https://mvnrepository.com/artifact/commons-logging/commons-logging
      compile group: 'commons-logging', name: 'commons-logging', version: '1.2'

      (2) Spring Beans:http://repo1.maven.org/maven2/org/springframework/spring-beans/

      <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>5.1.9.RELEASE</version>
      </dependency>
    
      // https://mvnrepository.com/artifact/org.springframework/spring-beans
      compile group: 'org.springframework', name: 'spring-beans', version: '5.1.9.RELEASE'

      (3) Spring Core:http://repo1.maven.org/maven2/org/springframework/spring-core/

      (4) Spring JDBC:http://repo1.maven.org/maven2/org/springframework/spring-jdbc/

      (5) Spring Transaction:http://repo1.maven.org/maven2/org/springframework/spring-tx/

        springframework的这几个包的区别就是<artifactId>标签不同。

    3. 使用JDBCTemplate

      配合JDBCUtils,JDBCTemplate提供了多种功能的封装,极大的简化了语句,只要关心SQL语句即可。

      (1) 创建JDBCTemplate对象

        JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

        可以将创建对象语句做成员变量,使用private修饰,这样类中每一个业务就不需要重复创建对象,可以直接使用template了。

      (2) 使用JdbcTemplate提供的方法

        1) upadate(SQL语句, 参数列表):执行DML语句,执行添、删、改语句。返回影响行数。

        tring sql = "UPDATE user SET age = ? WHERE id = ?";
        int count = template.update(sql, 60, 1);

        2) queryForMap(SQL语句, 参数列表):执行DQL语句,执行查询语句。返回被封装到Map集合的数据集。

        /* 注意,这个方法将列名和值作为键值对封装为Map集合
        只能查询唯一一条结果集,如果是多条结果一定不能使用这个方法 */
        String sql = "SELECT * FROM user WHERE id = ?";
        Map<String,Object> map = template.queryForMap(sql, 1);
        System.out.println(map);

        3) queryForList(SQL语句, 参数列表):执行DQL语句,执行查询语句。返回被封装到List集合的数据集。

        /* 用这个方法可以打印多条封装成Map集合的结果集
        其实就是将每一条记录封装成一个Map集合,然后将Map集合装到List集合中 */
        String sql = "SELECT * FROM user WHERE id = ? OR id = ?";
        List<Map<String,Object>> list = template.queryForList(sql, 1, 2);
        for(Map<String,Object> stirngObjectMap : list) {
          System.out.println(stirngObjectMap);
        }

        4) query(SQL语句, 参数列表):执行DQL语句,执行查询语句。返回的数据集封装到JavaBean对象。

        /* 使用提供的BeanPropertyRowMapper方法,完成数据到JavaBean的自动封装
        注意:domain类中的数据类型一定要是引用数据类型,否则可能会出错 */
        String sql = "SELECT * FROM user";
        List<类型> list = template.query(sql, 
            new BeanPropertyRowMapper<类型>(类型.class));
        for(类型 user : list){
          System.out.println(user);
        }
        /* domain 类 */
        public class User {
            private Integer id;
    
            public Integer getId() { return id; }
    
            public void setId(Integer id) { this.id = id; }
    
            @Override
            public String toString() {
                return "User{" + "id=" + id + '}';
            }
        }

        5) queryForObject(SQL语句, 参数列表):执行DQL语句,执行查询语句。返回的数据集封装为对象。

        /* queryForObject方法一般都是执行聚合函数的方法 */
        String sql = "SELECT COUNT(id) from user";
        Long total = template.queryForObject(sql, Long.class);
        System.out.println(total);
  • 相关阅读:
    【数据结构】算法 Invert Binary Tree 翻转二叉树
    雪碧图
    闭包
    正则那些事
    JS添加,删除表格中的行那些事
    三目运算
    10个不能重复的随机数要求为55-109的整数, 要将10个随机数打印出来,并且将10个随机数里面能够被5整除的数打印出来,最后将能够被5整除的数叠加的结果打印出来
    输出从小到大排序好的五个不重复的随机整数,范围[10-23)。努力的人全世界都为你让路!你的努力终将美好!
    随机取10个在55-80之间的数,按照从小到大排序输出,冒泡排序
    求10个随机数,随机数要求为25-99的整数.能够被3整除的数
  • 原文地址:https://www.cnblogs.com/NyanKoSenSei/p/11569822.html
Copyright © 2020-2023  润新知