美文网首页
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