使用Spring框架简单操作JDBC完成数据库中表的增删改查

第一步:导入mysql 的jar包和Spring的jar包
链接:https://pan.baidu.com/s/1G4IyVtl4YgWAa9pmHAn-lQ
提取码:yg3o
要创建一个JDBC工具类
这里用阿里连接池来写JDBC工具类

  1. 阿里连接池druid的配置文件
    druid.properties
    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/zang?useUnicode=true&characterEncoding=utf8
    username=root
    password=root
    initialSize=5
    maxActive=10
    maxWait=3000
  2. 编写JDBC工具类
public class JdbcUtilsDruid2 {
    private static DataSource ds;
    private JdbcUtilsDruid2(){

    }
    static {
        Properties properties = new Properties();
        InputStream resourceAsStream = JdbcUtilsDruid2.class.getClassLoader().getResourceAsStream("druid.properties");
        try {
            properties.load(resourceAsStream);
            ds = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static DataSource getDateSource(){
        return ds;
    }

}
  1. 使用JdbcTemplate对象操作sql语句,从而操作数据库
  2. 创建JdbcTemplate对象,依赖于DataSource数据源
  3. 调用JdbcTemplate的方法来完成CURD的操作
    *update(sql):执行DML语句,增删改语句,update也可以传入从键盘输入的处理值。
    *queryForMap():查询结果将结果封装为map集合,将表的列名作为key
    ,将值作为value把记录封装为一个map集合,查询长度只能是一条数据,
    *queryForList():查询结果将结果封装为list集合,可以查询多条数据
    注意:这是将每一条记录封装为一个Map集合,再将map集合装载到List集合里面去
    *query():查询结果,将结果封装为一个JavaBean(实体类)对象,如Sutndent 类,Teacher类
    query的参数:RowMapper
    * 一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
    * new BeanPropertyRowMapper<类型>(类型.class)
    *queryForObject:查询结果,将结果封装为对象,一般用于聚合函数的查询
    示例:
public class UserDao2 {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(JdbcUtilsDruid2.getDateSource());
    Scanner scanner = new Scanner(System.in);
    //删除一条数据
    public void delete(){
        String sql = "delete from student where id = ?";
        System.out.println("请输入要删除的id");
        int id = scanner.nextInt();
        int update = jdbcTemplate.update(sql, id);
        if(update>0){
            System.out.println("删除成功");

        }else{
            System.out.println("删除失败");
        }
    }
    //修改一条数据
    public void update(){
        String sql = "update student set password = ? where name = ?";
        System.out.println("请输入要名字");
        String name = scanner.next();
        System.out.println("请输入要修改的密码");
        String password = scanner.next();
        int update = jdbcTemplate.update(sql, password,name);
        if(update>0){
            System.out.println("修改成功!");
        }

    }
    //添加一条数据
    public void add(){
        String sql = "insert into student(id,name,password)values(?,?,?)";
        System.out.println("请输入id");
        int id = scanner.nextInt();
        System.out.println("请输入要添加名字");
        String name = scanner.next();
        System.out.println("请输入要添加密码");
        String password = scanner.next();
        int update = jdbcTemplate.update(sql,id,name,password);
        if(update>0){
            System.out.println("添加成功!");
        }

    }
    //查询一条数据
    public void search(){
        String sql = "select count(*) from student";
        Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
        if(integer>0){
            System.out.println("数据库中总共有"+integer+"条记录");
            System.out.println("查询成功!!!");
        }
    }
    public User login(User  user){
        String sql = "select * from student where name = ? and password = ?";

        User user1 = null;
        try {
            user1 = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), user.getName(), user.getPassword());
        } catch (DataAccessException e) {

            return null;
        }
        return user1;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42160112/article/details/107977146