美文网首页
Spring-004-jdbcTemplete基本操作

Spring-004-jdbcTemplete基本操作

作者: 井易安 | 来源:发表于2018-05-07 16:47 被阅读0次
    1. spring框架是一站式框架 所以针对javaee三层结构每一层都有解决技术
    2. 在dao层使用jdbcTemplete
    3. spring对不同的持久层都多了对应的封装


      image
    4. jdbcTemplete是对idbc的封装

    jdbcTemplete最基本的操作 CRUD

    1. 导入jar包 spring-jdbc + spring-tx + 数据库驱动
    2. 创建对象,设置数据库的信息
    3. 创建jdbcTemplete对象,设置数据源
    4. 调用jdbcTemplete对象里面的方法实现操作

    增加

    public void add(){
            //设置数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/testspring");
            dataSource.setUsername("root");
            dataSource.setPassword("");
            
            //创建jdbcTemplete对象,设置数据源
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            
            //调用jdbcTemplete对象里面的方法实现操作  
            //创建sql语句  
            String sql = "insert into User values(?,?)";
            int rows = jdbcTemplate.update(sql, "lily","123456");
            System.out.println(rows);
            
        }
    

    修改

        public void update(){
            //设置数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/testspring");
            dataSource.setUsername("root");
            dataSource.setPassword("");
            
            //创建jdbcTemplete对象,设置数据源
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            String sql = "update user set password=? where username=?";
            int rows = jdbcTemplate.update(sql,"123","lily");
            System.out.println(rows);
        }
    

    删除

    public void delete(){
            //设置数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/testspring");
            dataSource.setUsername("root");
            dataSource.setPassword("");
            
            //创建jdbcTemplete对象,设置数据源
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            String sql = "delete from user where username=?";
            int rows = jdbcTemplate.update(sql,"lily");
            System.out.println(rows);
        }
    

    查询

    jdbcTemplet实现查询,有接口RowMapper,jdbc针对这个借口没有提供实现类,得到不同的类型数据需要自己进行数据封装
    jdbc实现代码

        public void testJDBC(){
            Connection conn = null;
            PreparedStatement psmt = null;
            ResultSet rs = null;
            
            try {
                Class.forName("com.mysql.jdbc.Driver");
                //创建连接
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testspring","root","");
                //编写sql语句
                String sql = "select * from user where username=?";
                //预编译sql
                psmt = conn.prepareStatement(sql);
                //设置参数值
                psmt.setString(1, "lily");
                //执行sql
                rs = psmt.executeQuery();
                //遍历结果集
                while(rs.next()){
                    //得到返回结果值
                    String username = rs.getString("username");
                    String password = rs.getString("password");
                    System.out.println(username+password);
                    //然后通过 new创建对象
                }
                
                
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    rs.close();
                    psmt.cancel();
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
        }
    
    1. 使用jdbcTemplet查询返回某一个值
    public void testCount(){
            //设置数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/testspring");
            dataSource.setUsername("root");
            dataSource.setPassword("");
            
            //创建jdbcTemplete对象,设置数据源
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            String sql = "select count(*) from user";
            int count = jdbcTemplate.queryForObject(sql, Integer.class);
            System.out.println(count);
        }
    
    1. 查询返回对象
      image
      参数介绍
      第一个参数是sql语句
      第二个参数是 RowMapper,是接口 类似于dbutils里面的接口
      第三个参数是可变参数
        public void testObject(){
            //设置数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/testspring");
            dataSource.setUsername("root");
            dataSource.setPassword("");
            
            //创建jdbcTemplete对象,设置数据源
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            String sql = "select * from user where username=?";
            //需要自己写类来实现接口,自己做数据封装
            User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(),"jack");
            System.out.println(user);
        }
    

    MyRowMapper类 进行数据获取和封装对象

    class MyRowMapper implements RowMapper<User>{
    
        @Override
        public User mapRow(ResultSet rs, int num) throws SQLException {
            //num表示返回的结果条数 
            // TODO Auto-generated method stub
            //1 从结果集里面得到数据
            String username = rs.getString("username");
            String password = rs.getString("password");
            
            //2 把数据封装到对象里面
            User user = new User();
            user.setUsername(username);
            user.setPassword(password);
            return user;
        }
        
    }
    
    1. 查询返回list集合
        public void testList(){
            //设置数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/testspring");
            dataSource.setUsername("root");
            dataSource.setPassword("");
            
            //创建jdbcTemplete对象,设置数据源
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            String sql = "select * from user";
            //需要自己写类来实现接口,自己做数据封装
             List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
            System.out.println(list);
        }
    

    相关文章

      网友评论

          本文标题:Spring-004-jdbcTemplete基本操作

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