发表于: 2025-03-17 20:24:32

0 19


  • 今天完成的事情:

    • 17.编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范。
    • 用jdbc连接数据库,尝试进行增加,查找,改变的操作,学习一些面向对象的基础知识。
    • 查询
    • package org.example; // 假设你的包名为 test,请根据实际情况调整

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;

      public class test111 implements UserDao {

      private final String url = "jdbc:mysql://localhost:3306/run?useSSL=false&serverTimezone=UTC";
      private final String user = "root";
      private final String password = "199410"; // 替换为你的实际密码

         @Override
         public void queryAllUsers() {
      // 使用 SELECT 语句来查询 ye 表中所有记录
             String sql = "SELECT * FROM ye";
      try (Connection conn = DriverManager.getConnection(url, user, password);
      PreparedStatement pstmt = conn.prepareStatement(sql)) {

      ResultSet rs = pstmt.executeQuery(); // 使用 executeQuery 进行查询
                 while (rs.next()) { // 遍历结果集
                     int id = rs.getInt("id");
      String username = rs.getString("name"); // 假设有一个名为 name 的列
                     int QQ = rs.getInt("QQ"); // 假设有一个名为 QQ 的列

                     System.out.println("ID: " + id + ", Username: " + username + ", QQ: " + QQ);
      }
      } catch (SQLException e) {
      System.err.println("SQL异常: " + e.getMessage());
      e.printStackTrace();
      }
      }

      public static void main(String[] args) {
      UserDao userDao = new test111(); // 使用接口类型引用具体实现类的对象
             userDao.queryAllUsers(); // 查询 ye 表中的所有用户信息
         }
      }
    • 增加
    • package org.example;

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;

      public class test222{

      private final String url = "jdbc:mysql://localhost:3306/run?useSSL=false&serverTimezone=UTC";
      private final String user = "root";
      private final String password = "199410"; // 确保这是正确的密码

         public void addUser(int Id, String name, int QQ) {
      String sql = "INSERT INTO ye (id, name, QQ) VALUES (?, ?, ?)";

      try (Connection conn = DriverManager.getConnection(url, user, this.password);
      PreparedStatement pstmt = conn.prepareStatement(sql)) {

      // 设置SQL语句中的参数
                 pstmt.setInt(1, Id); // 设置第一个'?'参数
                 pstmt.setString(2, name); // 设置第二个'?'参数
                 pstmt.setInt(3, QQ); // 设置第三个'?'参数

                 int affectedRows = pstmt.executeUpdate();
      System.out.println("受影响的行数: " + affectedRows);
      } catch (SQLException e) {
      e.printStackTrace();
      }
      }

      public static void main(String[] args) {
      test222 userDao = new test222();
      // 调用addUser方法添加新用户
             userDao.addUser(3, "newUsername", 12); // 添加ID3的新用户
         }
      }
    • 改变
    • package org.example;

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;

      public class Test4 {

      private final String url = "jdbc:mysql://localhost:3306/run?useSSL=false&serverTimezone=UTC";
      private final String user = "root";
      private final String password = "199410"; // 确保这是正确的密码

         /**
          * 更新表格中指定ID的记录
          */
         public void updateUser(int Id, String name, int QQ) {
      String sql = "UPDATE ye SET name = ?, QQ = ? WHERE id = ?";

      try (Connection conn = DriverManager.getConnection(url, user, this.password);
      PreparedStatement pstmt = conn.prepareStatement(sql)) {

      // 设置SQL语句中的参数
                 pstmt.setString(1, name); // 设置第一个'?'参数,对应'name'
                 pstmt.setInt(2, QQ); // 设置第二个'?'参数,对应'QQ'
                 pstmt.setInt(3, Id); // 设置第三个'?'参数,用于定位要更新的行

                 int affectedRows = pstmt.executeUpdate();
      System.out.println("受影响的行数: " + affectedRows);
      } catch (SQLException e) {
      e.printStackTrace();
      }
      }

      public static void main(String[] args) {
      Test4 userDao = new Test4();
      // 调用updateUser方法更新用户信息
             userDao.updateUser(3, "updatedUsername", 456789); // 更新ID3的用户的nameQQ
         }
      }


    明天计划的事:

    继续练习用jdbc连接数据库,增加接口功能


    遇到的问题:


    代码中没有用到独立的DAO接口


    收获:

    成功使用jdbc连接数据库,尝试进行增加,查找,改变的操作,学习一些面向对象的基础知识。






返回列表 返回列表
评论

    分享到