jar官方版本包:https://downloads.mysql.com/archives/c-j/

  1. mysql5驱动可以用5-8.jar,驱动包是向下兼容的
  2. jar5注册驱动用com.mysql.jdbc.Driver
  3. jar8注册驱动用com.mysql.cj.jdbc.Driver
  4. jar8的驱动设置数据源时,需要加上时区配置

    概念

  • 介绍
    • jdbc是 Java DataBase Connectivity
    • 是java连接数据库管理软件的技术
    • 主要的工作是:发送SQL语句给数据库管理系统、获取数据库管理系统的返回的结果
  • 作用
    • 只需要关注接口方法,不需要关注实现,适用于所有关系型数据库
    • 后期可以无感切换数据库,减少其他数据库的学习时间

      基本使用

      环境设置

  1. 登录数据库,查看自己数据库的版本号

image.png

  1. 在官网找到与自己版本匹配的jar包:https://downloads.mysql.com/archives/c-j/

image.png

  1. 将jar放到当前项目的libs文件中,导入环境

image.png

注册、创建、连接、使用、关闭

基于Prepared的CRUD

  1. // 注册
  2. // registerDriver(new Driver());
  3. // Driver中com.mysql.cj.jdbc.Driver内部会再调用一次Driver();
  4. Class.forName("com.mysql.jdbc.Driver");// 可以使用反射直接调用内部driver()
  5. // 连接
  6. // jdbc:mysql://127.0.0.1:3306/ => jdbc:mysql:/// -> 本地库和默认端口3306可以简写
  7. // 方法一:带有ip、接口、库名、账号密码的url
  8. // DriverManager.getConnection(String url);
  9. Connection connection =
  10. DriverManager.getConnection("jdbc:mysql:///dbName?user=root&password=1234");
  11. // 方法二:带有ip、接口、库名的url 和 账号user 、 密码password
  12. // DriverManager.getConnection(String url, String user, String password);
  13. Connection connection =
  14. DriverManager.getConnection("jdbc:mysql:///dbName", "root", "1234");
  15. // 方法三:带有ip、接口、库名的url 和 有账号密码的属性的info
  16. // DriverManager.getConnection(String url, java.util.Properties info);
  17. Connection connection =
  18. DriverManager.getConnection("jdbc:mysql:///itguigu", new Properties(){{
  19. setProperty("user", "root"); setProperty("password", "1234");
  20. }});
  21. // 创建
  22. // connection是DriverManager.getConnection的返回值
  23. Statement statement = connection.createStatement();
  24. // 使用
  25. // select读取
  26. String sql = "select * from a;";
  27. ResultSet resultSet = statement.executeQuery(sql);
  28. while(resultSet.next()){
  29. int aid = resultSet.getInt(1);
  30. System.out.println(aid + " : " + resultSet.getString("id"));
  31. }
  32. // insert into写入
  33. String sql = "insert info a value (4);";
  34. int rows = statement.executeUpdate(sql);
  35. // 关闭
  36. if(selement != null) statement.close();
  37. if(root != null) root.close();

基于PreparedStatement CRUD

  1. // 注册
  2. Class.forName("com.mysql.jdbc.Driver");// 可以使用反射直接调用内部driver()
  3. // 连接
  4. Connection connection =
  5. DriverManager.getConnection("jdbc:mysql:///dbName?user=root&password=1234");
  6. // 创建
  7. Statement statement = connection.createStatement();
  8. // 使用
  9. // select读取
  10. String sql = "select * from user where account=? and password=?";
  11. PreparedStatement preparedStatement = connection.prepareStatement(sql);
  12. preparedStatement.setObject(1,account);
  13. preparedStatement.setObject(2,password);
  14. ResultSet resultSet = preparedStatement.executeQuery();
  15. if(resultSet.next()){
  16. System.out.println("欢迎:" + resultSet.getString("name") + "登录!");
  17. }else{
  18. System.out.println("登录失败");
  19. }
  20. // insert into写入x2
  21. String sql = "insert into

扩展

Druid连接池

Apache DBUtils