使用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);
    }
}

結果輸出

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章