使用JDBC数据库mysql5的增删查改

导入JDBC

  • JDBC:Java Database Connection
  1. 创建directry,命令lib
  2. 复制jdbc到lib里
  3. 右键jdbc,add as library

创建pacage,class

  1. src目录下创建package-- com
  2. com下创建类 Test
  • 注意命名驼峰式

使用SQLyog桌面操作

  1. 建立数据库 user
  2. 创建表 userInfo
  3. 然后添加数据
    在这里插入图片描述

JDBC进行mysql查询连接

JDBC连接数据库,并进行数据库查询
数据库操作七步走:

  1. 加载驱动
  2. 创建连接
  3. 写sql
  4. 得到statement对象执行sql
  5. 得到结果集
  6. 处理结果集
  7. 关闭资源
  • 之后1-2将封装到util的getConnection()里
  • 6将改成ArrayList,每一个数据存到实体类userinfo中
  • 7封装到util的close()里
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接
Connection connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useSSL=true&characterEncoding=utf-8&user=root&password=123");
	//这里的user对应的之前创建的数据库名
	//user,password为数据库的账号和密码
System.out.println("创建连接成功!");
//3.写sql
String sql="select * from userinfo";
//4.得到statement对象执行sql
PreparedStatement statement=connection.prepareStatement(sql);
//5.得到结果集
ResultSet res= statement.executeQuery();
//6.处理结果集
while(res.next()){
    System.out.println(res.getInt(1));
    System.out.println(res.getString(2));
    System.out.println(res.getString(3));
}
//7.关闭资源
res.close();
statement.close();
connection.close();
  • 查看执行结果是否成功,如果有错,进行差错,可能是账号密码不对,mysql8和mysql5的jdbc连接url方式也不一样,以及数据库名、表名是否正确等

创建Util

但是如果我们要继续写插入、删除等操作时,又要重复写很多代码,所以我们建立了Util这个包,里面封装getConnection和close。

封装getConnection

public static Connection getConnection(){  //static 就不需要new了
        Connection connection=null;
        try {
            //1.加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.创建连接
            connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useSSL=true&characterEncoding=utf-8&user=root&password=123");
            System.out.println("创建连接成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return connection;
    }

封装close

    public static void close(ResultSet res, Statement statement,
                      Connection connection){
        if (res!=null){
            try {
                res.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

创建bean

实体类和数据库对应

创建实体类

  1. 构造方法
  2. 属性
  3. get,set方法
  4. toString()
public class UserInfo {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

创建dao

持久层,数据库的增删查改

public class UserInfoDao {
    public ArrayList<UserInfo> findAll(){
        ResultSet res=null;
        PreparedStatement statement=null;
        Connection connection=null;

        List<UserInfo> list=new ArrayList<>();   //添加ArrayList存储每个数据
        try {
//            //1.加载驱动
//            Class.forName("com.mysql.jdbc.Driver");
//            //2.创建连接
//            connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useSSL=true&characterEncoding=utf-8&user=root&password=123");
//            System.out.println("创建连接成功!");
            connection= DBUtil.getConnection();
            //3.写sql
            String sql="select * from userinfo";

            //4.得到statement对象执行sql
            statement=connection.prepareStatement(sql);

            //5.得到结果集
            res= statement.executeQuery();
            //6.处理结果集
            while(res.next()){
                UserInfo userInfo=new UserInfo();
                userInfo.setId(res.getInt(1));
                userInfo.setUsername(res.getString(2));
                userInfo.setPassword(res.getString(3));
                list.add(userInfo);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            //7.关闭资源
            DBUtil.close(res,statement,connection);
        }
        return (ArrayList<UserInfo>) list;
    }

    /*
    * 添加数据
    * */
    public void add(){
        Connection connection =null;
        PreparedStatement statement=null;

        try {
            connection= DBUtil.getConnection();
            String sql = "INSERT INTO userinfo (username,password) VALUES(?,?)";
            statement=connection.prepareStatement(sql);
            statement.setString(1,"xiaowang");
            statement.setString(2,"123");
            statement.executeUpdate();
            System.out.println("添加成功");
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.close(null,statement,connection);
        }
    }

    /*
    * 更改数据
    * */
    public void update(){
        Connection connection =null;
        PreparedStatement statement=null;
        try {
            connection=DBUtil.getConnection();
            String sql = "update userinfo set password='456' where id=3";
            statement=connection.prepareStatement(sql);
            statement.executeUpdate();
            System.out.println("修改成功");
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.close(null,statement,connection);
        }
    }

    /*
    * 删除数据
    * */
    public void delete(){
        Connection connection =null;
        PreparedStatement statement=null;
        try {
            connection=DBUtil.getConnection();
            String sql= "delete from userinfo where id=3";
            statement=connection.prepareStatement(sql);
            statement.executeUpdate();
            System.out.println("删除成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DBUtil.close(null,statement,connection);
        }
    }
}

主函数

public class Test {
    public static void main(String[] args) {
        UserInfoDao userInfoDao=new UserInfoDao();
        ArrayList<UserInfo> list=userInfoDao.findAll();	//查询数据库中的结果
        System.out.println(list);				//输出
        userInfoDao.add();						//添加一条数据
        ArrayList<UserInfo> list1=userInfoDao.findAll();//查看添加后的所有数据
        System.out.println(list1);
    }
}

结果输出

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值