实习日记 7.11

实习的第二天主要学习了jdbc,老师带着我们在IDEA中写了在数据库中增删查改的代码以及如何优化自己的代码。

TestUser类

先在数据库中建立一个新的表格java7,并在java7中进行增加和查询看是否成功
学会熟练使用一些快捷键:
万能键 ALT + Enter
自动补充 Alter + Ctrl + V
注释快捷键 CTRL + /

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

        try {
            //1.获取驱动 万能键 ALT + Enter
            //自动补充 Alter + Ctrl + 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";
            //获取存放sql对象
            pstm = conn.prepareStatement(sql);
            //5.填坑
//            pstm.setString(1,"张三");
//            pstm.setString(2,"123456");
            rs = pstm.executeQuery();
            //执行sql语句,得到结果
//             int i = pstm.executeUpdate();
            //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) {
            if(rs != null){
                try {
                    rs.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
            else if(pstm != null){
                try {
                    pstm.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }else if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        }

    }
}

User类

是一个实体类,用来映射数据库
主要分为四步:
1.对属性的封装
2.get and set(可以自动生成,右键generate – getter and setter)
3.构造方法(可以自动生成,右键generate – constructor)
4. toString 方法的重写(可以自动生成,右键generate – toString())

public class User {
    //1.对属性的封装
    private int id;
    private String username;
    private String password;

    //2.get and set


    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;
    }

    //3.构造方法
    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User() {
    }

    //4. toString 方法的重写
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

DBUtil类

这个类里封装了一些在数据库中操作需要用到的方法

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";

    static {
        //1.获取驱动
        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;
    }

    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();
    }
}

TestUser2类

将TestUser实现的功能通过使用DBUtil里方法再实现一次
在调用构造函数时因为只有两个变量,而之前写的构造函数需要三个变量,所以我们需要编写一个新的只需两个变量的构造函数供使用

public class TestUser2 {
    Connection conn = null;
    PreparedStatement pstm = null;
    ResultSet rs = null;

    public void addUser(User user){
        try {
            // 1. 获取连接
            conn = DBUtil.get_Conn();
            // 2. 获取存放sql语句的对象
            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 static void main(String[] args){
        TestUser2 t2 = new TestUser2();

        User user = new User("李思虎","789789");
        t2.addUser(user);
    }

今天的内容主要是了解并使用jdbc,并通过编写在数据库中的增删查改来实践如何使用jdbc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值