学习总结-JDBC连接MySQL数据库,实现增删改查

JDBC连接MySQL数据库

  1. 导入jar包,根据安装的MySQL版本,选择导入不同版本的jar包,常用的有MySQL5的jar:mysql-connector-java-5.1.7-bin.jar。可以根据自己安装的MySQL版本到Maven仓库中下载。
  2. 加载驱动,一般的方法是Class.forNam(“com.mysql.jdbc.Driver”);这是5版本的连接方式,如果是更高版本的话,可能需要将字符串改成"com.mysql.cj.jdbc.Driver"。
  3. 获取连接对象,使用静态类DriverManager的getConnection(url, user, password)方法获得Connection连接对象,其中,url的为"jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8";如果更高版本可能需要设置时区,如url = “jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8&serverTimezone=GMT”.
  4. 获取数据库操作对象,使用连接对象的方法获得preparedStatement 对象。
  5. 执行SQL语句并获得结果集ResultSet,查询执行的方法为executeQuery(),增删改执行的方法为executeUpdate()。
  6. 关闭连接。

使用JDBC实现对MySQL的增删改查

查询数据

public class JDBCDemo1 {
    public static void main(String[] args) {

        Connection conn = null;
        PreparedStatement pstt = null;
        ResultSet rs = null;
        try {
            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.管理驱动并获取Connection连接
            String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=GMT";
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, user, password);
            //3.通过Connection获取PrepareStatement对象
            String sql = "select * from dept limit 0,3";
            pstt = conn.prepareStatement(sql);
            //4.执行SQL语句得到结果集resultSet
            rs = pstt.executeQuery(); //executeQuery() 用于查询
            while (rs.next()) {
                //(1)按编号获取第几列的数据
                System.out.println("(1)" + rs.getInt(1) + " "
                        + rs.getString(2) + " "
                        + rs.getString(3));
                //(2)按列的名称获取指定列的数据,列的名称是逻辑表的名称
                System.out.println("(2)" + rs.getInt("deptno") + " "
                        + rs.getString("dname") + " "
                        + rs.getString("loc"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //5.关闭接口
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstt != null) {
                    pstt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

增删改数据

public class JDBCDemo2 {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstt = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT&characterEncoding=utf-8";
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, user, password);
            //增删改SQL
            //? 表示占位符,防止SQL注入,在预编译后通过pstt对象给对应的占位符赋值
            String sql1 = "insert into user values(?, ?, ?, ?)";
            String sql2 = "update user set password = ? where uid = ?";
            String sql3 = "delete from user where uid = ?";
            pstt = conn.prepareStatement(sql3);
            //增
//            pstt.setInt(1, 1);
//            pstt.setString(2, "xiaohu");
//            pstt.setString(3, "123");
//            pstt.setInt(4, 1);
            //改
//            pstt.setString(1, "456");
//            pstt.setInt(2, 1);
            //删
            pstt.setInt(1, 1);
            int i = pstt.executeUpdate();
            System.out.println("更新了" + i + "条数据");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstt != null){
                    pstt.close();
                }
                if (conn != null){
                    conn.close();
                }
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值