zoukankan      html  css  js  c++  java
  • JdbcTemplate

    1.导入jar包

    2.创建JdbcTemplate对象,依赖于数据源DataSource

           JdbcTemplate jt = new JdbcTemplate(new ComboPooledDataSource()); //依赖于数据源DataSource

    3.调用JdbcTemplate方法来完成CRUD操作

      update();

        String sql = "update t_user set password = ? where id=?";
           jt.update(sql,"111","1");
    @Test
        public void test01(){
            String sql = "insert into t_user values(null,?,?)";
            int i = jt.update(sql, "校长", "123");
            System.out.println(i);
        }

      queryForMap();会把查询出来的单个记录封装为map集合

    @Test
        public void test03(){
            String sql = "select * from t_user where id=?";
            Map<String, Object> map = jt.queryForMap(sql, 1);
            System.out.println(map);
        }

      queryForList();查询所有记录封装到list集合中

    @Test
        public void test02(){
            String sql = "select * from t_user";
            List<Map<String, Object>> maps = jt.queryForList(sql);
            for (Map<String, Object> map : maps) {
                System.out.println(map);
            }
        }

      query();   查询出来的单个对象封装为一个javabean

    @Test
        public void test04(){
            String sql ="SELECT * FROM t_user";
            List<User> userList = jt.query(sql, new RowMapper<User>() {
                @Override
                public User mapRow(ResultSet rst, int i) throws SQLException {
                    User u = new User();
                    int id = rst.getInt(1);
                    String username = rst.getString(2);
                    String password = rst.getString(3);
                    u.setId(id);
                    u.setUsername(username);
                    u.setPassword(password);
                    return u;
                }
            });
            for (User user : userList) {
                System.out.println(user);
            }
        }

    //使用RowMapper的实现类BeanPropertyRowMapper
    //注意该方法中必须保证bean中各个属性的数据名于数据库中字段名一致。数据类型也需要注意
    @Test
    public void test05(){ String sql ="SELECT * FROM t_user"; List<User> userList = jt.query(sql,new BeanPropertyRowMapper<User>(User.class)); for (User user : userList) { System.out.println(user); } }

      queryForObject();  用于聚合函数的执行

    @Test
        public void test06(){
            String sql = "select count(id) from t_user";
            Long aLong = jt.queryForObject(sql, Long.class);
            System.out.println(aLong);
        }

    4. 不用close(),因为模板会自动处理

     
  • 相关阅读:
    quart源码阅读(一)
    Python poll IO多路复用
    Python select IO多路复用
    谁才是真正的垃圾:判断对象的可触及性
    Java的四种引用之强弱软虚
    JVM的基本结构及其各部分详解(二)
    JVM的基本结构及其各部分详解(一)
    java面试笔试题收集
    看懂Class文件的装载流程
    java单例模式
  • 原文地址:https://www.cnblogs.com/Difcipo/p/14016776.html
Copyright © 2011-2022 走看看