JDBC连接数据库并实现对数据库增删改查功能

第一部分  了解与学习JDBC

一、首先老师介绍了JDBC及SQLyog的使用方法

(一)JDBC百度百科

(二)SQLyog的使用方法

1、创建一个数据库并创建一个新表,如下图所示:

JDBC连接数据库并实现对数据库增删改查功能_第1张图片

2、打开IEDA并新建一个项目,导入mysql的驱动jar包连接数据库

JDBC连接数据库并实现对数据库增删改查功能_第2张图片

3、新建一个DBUtil.java以用来驱动连接数据库

package com.zhongruan;

import java.sql.*;

public class DBUtil {
    private static String driver = "com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8";
    private static String user = "root";
    private static String password = "123";

    // 1. 获取驱动
    static {
        try {
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 2. 创建连接
    public static Connection get_Conn() throws SQLException {
        Connection conn = DriverManager.getConnection(url, user, password);
        System.out.println("数据库连接成功" + conn);
        return conn;
    }

    // 3. 关闭连接
    public static void get_CloseConn(ResultSet rs, PreparedStatement pstm, Connection conn) throws SQLException {
        if(rs !=null){
            rs.close();
        }

        if(pstm !=null){
            pstm.close();
        }

        if(conn !=null){
            conn.close();
        }
    }

    // 都叫白盒测试 / 单元测试
    public static void main(String[] args) {
        try {
            get_Conn();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

4、创建TestUser.java文件实现对数据库的查询功能

package com.zhongruan;

import java.sql.*;

public class TestUser {
    // 测试增加
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;



        try {
            // 1. 获取驱动 ,万能键  Alt + enter
            // 自动补全返回值: Ctrl + Alt + V
            Class.forName("com.mysql.jdbc.Driver");
            // 2. 创建连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8" +
                    "&user=root&password=123");
            System.out.println("数据库连接成功" + conn);
            // 3. 编写sql, 注释的快捷键:Ctrl + /
//            String sql = "insert into tb_user(username,password) values(?,?)";
            String sql = "select * from tb_user";
            // 4. 获取存放sql的对象
            pstm = conn.prepareStatement(sql);
            // 5. 去执行SQL语句 并得到结果
            // executeUpdate: 给我们返回的是int类型的值(增删改), executeQuery: 给我们返回的是结果集(查询);
//            int i = pstm.executeUpdate();
            rs = pstm.executeQuery();
            // 6. 遍历结果
            while (rs.next()){
                System.out.println("用户ID:"+rs.getInt(1));
                System.out.println("用户名:"+rs.getString(2));
                System.out.println("用户密码:"+rs.getString(3));

            }


        } catch (Exception e) {

        } finally {
            if(rs !=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            } else if(pstm !=null){
                try {
                    pstm.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }else if(conn != null){
                try {
                    conn.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }


}

第二部分 完善功能,实现对数据库的增删改查功能并编写菜单

主函数如下:

 public static void main(String[] args) {
        System.out.println("请选择操作:" +
                "1:查询" +
                "   2:添加" +
                "   3:删除" +
                "   4:更改");
        Scanner in =new Scanner(System.in);
        int number=in.nextInt();

        TestUser2 t2 = new TestUser2();
        //User user = new User("李思虎","789789");
        switch(number){
            case 1: t2.selectUser();
            break;
            case 2: t2.addUser();
                break;
            case 3: t2.delUser();
                break;
            case 4: t2.updateUser();
                break;
        }
    }
}

增加功能:

 

// 测试增加
    public void addUser(){

        try {
            // 1. 获取连接
            conn = DBUtil.get_Conn();
            // 2. 获取存放sql语句的对象
            //获取用户输入的账号和密码
            Scanner input = new Scanner(System.in);
            // System.out.print("请输入用户名ID:");
            //int id= input.nextInt();
            int id=0;
            System.out.print("请输入用户名:");
            String username = input.next();
            System.out.print("请输入密码:");
            String password = input.next();
            User user = new User(id,username,password);
            pstm = conn.prepareStatement("insert into tb_user(username, password) values(?,?) ");
            // 3. 填坑
            pstm.setString(1,user.getUsername());
            pstm.setString(2,user.getPassword());
            // 4. 执行sql并得到结果
            int i = pstm.executeUpdate();
            // 5. 处理结果
            if(i > 0 ){
                System.out.println("增加成功");
            }else {
                System.out.println("增加失败");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 6. 关闭连接
            try {
                DBUtil.get_CloseConn(null, pstm, conn);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

删除功能:

public void delUser(){

        try {
            // 1. 获取连接
            conn = DBUtil.get_Conn();
            // 2. 获取存放sql语句的对象
            Scanner input = new Scanner(System.in);
            // System.out.print("请输入用户名ID:");
            //int id= input.nextInt();
            int id=0;
            System.out.print("请输入用户名:");
            String username = input.next();
            System.out.print("请输入密码:");
            String password = input.next();
            User user = new User(id,username,password);
            pstm = conn.prepareStatement("delete from tb_user where username=? ");
            // 3. 填坑
            pstm.setString(1,user.getUsername());
            //pstm.setString(2,user.getPassword());
            // 4. 执行sql并得到结果
            int i = pstm.executeUpdate();
            // 5. 处理结果
            if(i > 0 ){
                System.out.println("删除成功");
            }else {
                System.out.println("删除失败");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 6. 关闭连接
            try {
                DBUtil.get_CloseConn(null, pstm, conn);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

修改功能尚未成功,会报错。

第三部分  总结及心得

    今天跟着老师学习JDBC连接mysql,并对数据库进行增删改查的功能的实现,重拾了许多以前学过的知识,也了解学习了很多新的知识,收获颇多。

你可能感兴趣的:(实习日志)