美文网首页
JDBCTemplate介绍与使用

JDBCTemplate介绍与使用

作者: 肥肥的大肥鹅 | 来源:发表于2019-11-01 23:07 被阅读0次

    JDBCTemplate介绍与使用

    • Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发,使用JDBCTemolate能大大简化JDBC开发

    导入jar包

    1. commons-logging-1.2.jar
    2. spring-beans-5.0.0.RELEASE.jar
    3. spring-core-5.0.0.RELEASE.jar
    4. spring-jdbc-5.0.0.RELEASE.jar
    5. spring-tx-5.0.0.RELEASE.jar
    6. 下载:https://pan.baidu.com/s/1w3Zzyuf1cLE1aPfQO9PW-Q
    • 或者使用maven导入依赖

      <dependencies>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context</artifactId>
                  <version>5.0.6.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.12</version>
              </dependency>
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.47</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jdbc</artifactId>
                  <version>5.1.2.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
                  <version>1.2</version>
              </dependency>
      </dependencies>
      

    JDBCTemplate方法介绍

    1. update():执行DML语句。增、删、改语句
    2. queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将一条记录封装为一个map集合
    3. queryForList():查询结果将结果集封装为list集合
      • 一行数据封装在一个map中,再将map封装到list中
    4. query():将结果封装为JavaBean对象
    5. queryForObject():将查询结果封装为对象
      • 一般用于聚合函数的查询

    JDBCTemplete使用

    • 对象创建

      private static JdbcTemplate template;
      
          public static void main(String[] args) {
              Connection conn = null;
              PreparedStatement pstmt = null;
              try {
                  //创建Properties对象,用于加载配置文件
                  Properties pro = new Properties();
                  //加载配置文件
                  pro.load(DruidDemo1.class.getClassLoader().getResourceAsStream("druid.properties"));
                  //获取数据库连接池对象
                  DataSource ds = DruidDataSourceFactory.createDataSource(pro);
                  //创建JDBCTemplate对象
                  template = new JdbcTemplate(ds);
                  //修改id为1的学生数学成绩为202
                  test1();
                  //添加一条记录
                  test2();
                  //删除刚刚添加的记录
                  test3();
                  //查询id为1的用户信息封装到map中
                  test4();
                  //查询所有数据封装为Map的List中
                  test5();
                  //查询所有数据封装为Student对象的List中
                  test6();
                  //查询所有数据总数
                  test7();
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      
    • 修改id为1的学生数学成绩为202

        /**
           * 修改id为1的学生数学成绩为202
           */
          public static void test1(){
              String sql = "update student set math = 202 where id = ?";
              int count = template.update(sql,1);
              System.out.println(count);
          }
      
    • 添加一条记录

        /**
           * 添加一条记录
           */
          public static void test2(){
              String sql = "insert into student(id,name,age,math,english) values(?,?,?,?,?)";
              int count = template.update(sql,9,"里斯",8,22,34);
              System.out.println(count);
          }
      
    • 删除刚刚添加的记录

        /**
           * 删除刚刚添加的记录
           */
          public static void test3(){
              String sql = "delete from student where id = ?";
              int count = template.update(sql,9);
              System.out.println(count);
          }
      
    • 查询id为1的用户信息封装到map中

        /**
           * 查询id为1的用户信息
           * 封装到map中
           */
          public static void test4(){
              String sql = "select * from student where id = ?";
              Map<String, Object> map = template.queryForMap(sql,1);
              System.out.println(map);
          }
      
    • 查询所有数据封装为Map的List中

        /**
           * 查询所有数据
           * 封装为Map的List中
           */
          public static void test5(){
              String sql = "select * from student";
              List<Map<String, Object>> list = template.queryForList(sql);
              for (Map<String, Object> stringObjectMap : list) {
                  System.out.println(stringObjectMap);
              }
          }
      
    • 查询所有数据封装为Student对象的List中

        /**
           * 查询所有数据
           * 封装为Student对象的List中
           */
          public static void test6(){
              String sql = "select * from student";
              List<Student> list = template.query(sql,new BeanPropertyRowMapper<Student>(Student.class));
              for (Student student : list) {
                  System.out.println(student);
              }
          }
      
    • 查询所有数据总数

        /**
           * 查询所有数据总数
           */
          public static void test7(){
              String sql = "select count(id) from student";
              int total = template.queryForObject(sql,Integer.class);
              System.out.println(total);
          }
      

    相关文章

      网友评论

          本文标题:JDBCTemplate介绍与使用

          本文链接:https://www.haomeiwen.com/subject/wrzqbctx.html