lōvé裴ぺ123 2023-05-14 03:11 采纳率: 0%
浏览 25

使用java连接mysql数据库,满足增删减查

面向对象编程的结束课程设要求使用java连接mysql,实现增删减查等基本操作,希望尽量的简单,求各位学长学姐用过的代码和文档等,可以有偿,急。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-14 06:05
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/156645
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:JAVA与mysql连接,实现从一个数据库中读取指定字段内容,自增的放入另一个数据库中
    • 除此之外, 这篇博客: java操作mysql数据库的基本步骤中的 java操作mysql数据库的基本使用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 第一步:

      通过反射加载驱动:

      Class.forName("com.mysql.cj.jdbc.Driver");
      

      这时需要处理ClassNotFoundException

      加载mysql数据库驱动:(向下兼容)

      • mysql5:com.mysql.jdbc.Driver
      • mysql8:com.mysql.cj.jdbc.Driver

      第二步:

      设置连接的URL信息:

      • useUnicode=true:可以显示中文
      • characterEncoding=utf8:设置编码为utf-8
      • useSSL=true:使用安全连接
      • serverTimezone=Asia/Shanghai:设置mysql的时区,mysql8默认时区是美国

      第三步:

      创建连接对象:

      Connection conn = DriverManager.getConnection(url, username, password);
      

      这时有可能会产生SQLException,需要抛出或捕获

      第四步:

      创建执行SQL语句的对象(Statement/preparedStatement)

      Statement:发送完整的SQL语句到数据库,不是直接执行,而是由数据库先编译,再运行

      preparedStatement:可以使用占位符,是预编译的,他发送的是可以直接运行的SQL语句到数据库,数据库不需要编译,批处理比Statement效率高

      preparedStatement:

      String sql = "insert into user values (?,?,?,?)";
      PreparedStatement ps = conn.prepareStatement(sql);
      

      Statement:

      String sql = "insert into `user` values (8,'mc',20,'442261507@qq.com')";
      Statement s = conn.createStatement();
      

      第五步:

      preparedStatement:

      设置预编译的参数:

      ps.setInt(1,6);
      ps.setString(2,"马");
      ps.setInt(3,21);
      ps.setString(4,"442261578@qq.com");
      int update = ps.executeUpdate(sql);
      System.out.println(update); //插入成功,返回 1
      

      这时需要注意传入的数据类型,第一个参数的意思是插入的是第几个占位符(从1开始数),第二个参数就是要插入的数据

      Statement:

      int update = s.executeUpdate(sql);
      System.out.println(update); //插入成功,返回 1
      

      第六步:

      依次关闭开启的资源

      ps.close();
      conn.close();
      

      完整的示例如下:

      //加载数据库驱动
              try {
                  Class.forName("com.mysql.cj.jdbc.Driver");
                  //设置连接URL
                  String url = "jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai";
                  String username = "root";
                  String password = "mc123";
                  //创建连接
                  try {
                      Connection conn = DriverManager.getConnection(url, username, password);
                      //创建执行SQL语句的对象(statement/preparedStatement)
                      String sql = "insert into user values (?,?,?,?)";
                      PreparedStatement ps = conn.prepareStatement(sql);
                      //设置参数(注意数据类型)
                      ps.setInt(1,6);
                      ps.setString(2,"马聪");
                      ps.setInt(3,21);
                      ps.setString(4,"442261507@qq.com");
                      //执行插入操作
                      int update = ps.executeUpdate();
                      System.out.println(update); //插入成功,返回 1
                      //关闭开启的资源
                      ps.close();
                      conn.close();
      
                  } catch (SQLException e) {
                      System.out.println("创建连接失败!");
                      e.printStackTrace();
                  }
      
              } catch (ClassNotFoundException e) {
                  System.out.println("加载不到数据库驱动!");
                  e.printStackTrace();
              }
      
    • 您还可以看一下 邱石老师的java后台+微信小程序 实现完整的点餐系统课程中的 链接mysql数据库及问题解决小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 创建了问题 5月14日

悬赏问题

  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题