用JDBC实现数据库的连接以及简单的增删查改

用JDBC 实现数据库的连接

工具:IDEA 2018.2.2 mysql5.5 SQLyog

  • 用idea新建一个项目

用JDBC实现数据库的连接以及简单的增删查改_第1张图片
用JDBC实现数据库的连接以及简单的增删查改_第2张图片

  • 后续一直点next,最后点击完成。建好java文件后,在src目录下新建一个包dbo,在dbo包中新建一个Test类。
  • 在实现JDBC连接前,先建立好数据库,在SQLyog中建立新的数据库。如图
    用JDBC实现数据库的连接以及简单的增删查改_第3张图片
  • 在建立好的数据库中创建新的表,我们在这里只建立简单的数据表。编辑好后,点击确定
    用JDBC实现数据库的连接以及简单的增删查改_第4张图片
  • 建立好数据库后,转到idea,JDBC全称为Java DataBase Connectivity 是实现数据库连接的接口。
  • 整个JDBC的连接分为7步。
  • 1 加载驱动。到mysql官网中下载mysql驱动 ,我这里是mysql5.5,所以下载老版本的驱动。
    用JDBC实现数据库的连接以及简单的增删查改_第5张图片
    用JDBC实现数据库的连接以及简单的增删查改_第6张图片

将下载好的驱动解压,然后在java文件中新建文件lib中,然后将解压好的驱动添加到lib文件夹中。

将添加的

  • 2 创建连接
   //2创建连接
  connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test8?useSSL=true&characterEncoding=utf-8&user=root&password=1234");
  • 3 写sql语句
           //3.写sql
            String sql = "select * from user ";
  • 4 得到statement对象
            //4.得到statement对象
            st = connection.prepareStatement(sql);
  • 5 执行sql
            //5.执行sql
            rs = statement.executeQuery();
  • 6 处理结果集
            //6处理结果集
            while (resultSet.next()){
                System.out.print(" id: "+resultSet.getInt(1));
                System.out.print("name: "+resultSet.getString(2));
                System.out.print(" password: "+resultSet.getString(3));
                System.out.println("-----------");
            }
  • 7 关闭资源
 //7关闭资源
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(st!=null){
                try {
                    st.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(con!=null){
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
  • 整个代码:
package dbo;

import java.sql.*;
public class DB {
    public static void main(String[] args) {

        ResultSet rs=null;
        PreparedStatement st=null;
        Connection con=null;
        try {

            //1加载驱动
            Class.forName("com.mysql.jdbc.Driver");

            //2创建连接
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test8?useSSL=true&characterEncoding=utf-8&user=root&password=1234");
            //3.写sql
            String sql="select * from username";
            //4.得到statement对象
            st = con.prepareStatement(sql);
            //5.执行sql
            rs = st.executeQuery();
            //6处理结果集
            while (rs.next()){
                System.out.print(" id: "+resultSet.getInt(1));
                System.out.print(" name: "+resultSet.getString(2));
                System.out.print(" password: "+resultSet.getString(3));
                System.out.println("--------");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            //7关闭资源
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(st!=null){
                try {
                    st.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(con!=null){
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

简单的增删查改实现

将数据库的连接和关闭封装

  • 新建一个包,里面建一个类,对应的数据库的数据。
    用JDBC实现数据库的连接以及简单的增删查改_第7张图片
  • 在包中声明数据库对应的变量。
    private int id;
    private String name;
    private String password;
  • 在类中自动生成几个变量的获取和设置方法
    右键,选择 Generate——>getter and setter——>把三个变量都选择,点击 OK,就可以自动生成了。
    用JDBC实现数据库的连接以及简单的增删查改_第8张图片
    用JDBC实现数据库的连接以及简单的增删查改_第9张图片
    用JDBC实现数据库的连接以及简单的增删查改_第10张图片

    public int getid(){
        return  id;
    }
    public String getname(){
        return name;
    }
    public String getpassword(){
        return password;
    }
    
    public void setid(int id){
        this.id=id;
    }
    public void setname(String name){
        this.id=id;
    }
    public void setpassword(String password){
        this.id=id;
    }

  • 再通过自动生成构造方法
    右键,选择 Generate——>Constructor,剩下的步骤同上面一样。
    用JDBC实现数据库的连接以及简单的增删查改_第11张图片
    public Userinfo(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    
  • 生成tostring语句。
    步骤同上面一样,选择tostring()。
    用JDBC实现数据库的连接以及简单的增删查改_第12张图片
    @Override
    public String toString() {
        return "Userinfo{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
  • 新建一个类,将数据库的连接和断开都封装进去。
    在这里插入图片描述
  • 新建一个方法实现数据库的连接(将前面的数据库的连接代码转到方法 getConnection 中)
    public static Connection getConnection(){
        Connection con = null;
        PreparedStatement st = null;
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test1?useSSL=true&characterEncoding=utf-8&user=root&password=1234");
            return con;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
  • 新建一个方法实现数据库的关闭(将数据库的关闭代码转到方法 closeDB 中)
public static void closeDB(Connection con,PreparedStatement st,ResultSet rs){
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (st != null) {
        try {
            st.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (con != null) {
        try {
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
  • 实现数据的查询
  • 新建一个简单的查询方法,显示出所有数据
public class jdbc {


    public List find() {
        List list =new ArrayList<>();
        Connection con = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            con= dbl.getConnection();

            String sql = "select * from user ";
            st = con.prepareStatement(sql);
            rs = st.executeQuery();

            while (rs.next()) {
                int id=rs.getInt(1);
                String name=rs.getString(2);
                String password=rs.getString(3);
                Userinfo userinfo=new Userinfo(id,name,password);
                userinfo.setid(id);
                list.add(userinfo);
            }
            System.out.println(list.toString());

        } catch (Exception e) {
            e.printStackTrace();
            //System.out.println("数据库连接失败" + e.getMessage());
        } finally {
            dbl.closeDB(con,st,rs);
        }
        return list;
    }
  • 实现数据的更新
  • 新建一个方法,实现数据库的更新
  public static  void update(){
        Connection con = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            con= dbl.getConnection();

            String sql = "update user set name ='FFFF' where id='1' ";
            st = con.prepareStatement(sql);
            st.executeUpdate();


        } catch (Exception e) {
            e.printStackTrace();
            //System.out.println("数据库连接失败" + e.getMessage());
        } finally {
            dbl.closeDB(con,st,rs);
        }
    }
  • 实现数据的删除
  • 新建一个方法,实现数据库的更新
  public static  void update(){
        Connection con = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            con= dbl.getConnection();

            String sql = "update user set name ='FFFF' where id='1' ";
            st = con.prepareStatement(sql);
            st.executeUpdate();


        } catch (Exception e) {
            e.printStackTrace();
            //System.out.println("数据库连接失败" + e.getMessage());
        } finally {
            dbl.closeDB(con,st,rs);
        }
    }
  • 实现数据库的增加
  • 新建一个增加方法,实现数据库的增加
    public static void insert(){

        Connection con = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        try {
            con= dbl.getConnection();

            String sql = "insert into user values (4,'小明','8757')";
            st = con.prepareStatement(sql);
            st.executeUpdate();


        } catch (Exception e) {
            e.printStackTrace();
            //System.out.println("数据库连接失败" + e.getMessage());
        } finally {
            dbl.closeDB(con,st,rs);
        }
    }

你可能感兴趣的:(JDBC)