美文网首页
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基本操作

    spring框架是一站式框架 所以针对javaee三层结构每一层都有解决技术 在dao层使用jdbcTemplet...

  • 栈和队列

    顺序栈的基本操作: 链栈的基本操作 顺序队的基本操作 链队的基本操作

  • 【数据类型】21、上机练习:容器类型操作

    目录一、列表、元组基本操作二、列表、元组高级操作三、集合基本操作四、字典基本操作 一、列表、元组基本操作 +,*,...

  • MongoDB 基本操作用法

    MongoDB文档 基本操作 update 基本操作 find 基本操作 aggregate 终端用法 导入导出

  • 基本操作

    Alt+P:运行 按住win+左/右箭头:改变窗口大小 ctrl+W:复制文件 点击`:调出控制台输入框 在不同的...

  • 基本操作

    通过对廖雪峰的git教程学习做出的摘要1.git init 创建版本库git add () 告诉Git,把文件添加...

  • 基本操作

    用户相关 查看所有用户 修改用户名/密码 删除用户 数据泵相关 表空间 新建表空间 空间 表相关 查看所有表

  • 基本操作

    动态浏览

  • 基本操作

    因为要在Linux操作系统下写HDL,所以需要对Linux系统下的一些命令比较熟悉,以下做一下对Linux系统做一...

  • 基本操作

    1)查看目录下所有文件 2)返回最上级目录 3)复制文件 4)supervisor一套 5)supervisor简...

网友评论

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

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