当前位置: 首页 > news >正文

JDBC 进阶(未完结)

 一 实体类和ORM

对指定的对象的属性封装

package com.ax.advance.pojo;

public class Employee {

    private Integer id;
    private String degree;
    private String major;
    private String school1;
    private String school2;
    private String school3;
    private Integer userId;

    public Employee(Integer id, String degree, String major, String school1, String school2, String school3, Integer userId) {
        this.id = id;
        this.degree = degree;
        this.major = major;
        this.school1 = school1;
        this.school2 = school2;
        this.school3 = school3;
        this.userId = userId;
    }

    public Employee() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getDegree() {
        return degree;
    }

    public void setDegree(String degree) {
        this.degree = degree;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getSchool1() {
        return school1;
    }

    public void setSchool1(String school1) {
        this.school1 = school1;
    }

    public String getSchool2() {
        return school2;
    }

    public void setSchool2(String school2) {
        this.school2 = school2;
    }

    public String getSchool3() {
        return school3;
    }

    public void setSchool3(String school3) {
        this.school3 = school3;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", degree='" + degree + '\'' +
                ", major='" + major + '\'' +
                ", school1='" + school1 + '\'' +
                ", school2='" + school2 + '\'' +
                ", school3='" + school3 + '\'' +
                ", userId=" + userId +
                '}';
    }
}

数据封装在对象当中

package com.ax.advance;

import com.ax.advance.pojo.Employee;

import java.sql.*;

public class JDBCa {
    public static void main(String[] args) throws SQLException {
        //获取连接对象
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/itheima", "root", "tan2179432748");
        //预编译SQL语句
        PreparedStatement preparedStatement = connection.prepareStatement("select * from tb_user_edu where degree = ?");
        //为问号占位符赋值,并执行SQL语句,接收返回的结果集
        preparedStatement.setString(1, "本科");
        //处理结果集
        ResultSet resultSet = preparedStatement.executeQuery();
        //遍历结果集
        Employee employee = null;
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String degree = resultSet.getString("degree");
            String major = resultSet.getString("major");
            String primaryschool = resultSet.getString("primaryschool");
            String middleschool = resultSet.getString("middleschool");
            String university = resultSet.getString("university");
            int userId = resultSet.getInt("userid");

            //封装对象
            employee = new Employee(id, degree, major, primaryschool, middleschool, university, userId);
            System.out.println(employee);
        }
        //资源的释放(先开后放)
        resultSet.close();
        preparedStatement.close();
        connection.close();

    }
}

对象再封装在集合当中

package com.ax.advance;

import com.ax.advance.pojo.Employee;

import java.sql.*;
import java.util.ArrayList;

public class JDBCb {
    public static void main(String[] args) throws SQLException {
        
        //获取连接对象
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/itheima", "root", "tan2179432748");
        
        //预编译SQL语句
        PreparedStatement preparedStatement = connection.prepareStatement("select * from tb_user_edu where degree = ?");
        
        //为问号占位符赋值,并执行SQL语句,接收返回的结果集
        preparedStatement.setString(1, "本科");
        
        //处理结果集
        ResultSet resultSet = preparedStatement.executeQuery();
        
        //创建集合存储对象
        ArrayList<Employee> employees = new ArrayList<>();
        
        //遍历结果集
        Employee employee = null;
        while (resultSet.next()) {
            employee = new Employee();
            employee.setId(resultSet.getInt("id"));
            employee.setDegree(resultSet.getString("degree"));
            employee.setMajor(resultSet.getString("major"));
            employee.setSchool1(resultSet.getString("primaryschool"));
            employee.setSchool2(resultSet.getString("middleschool"));
            employee.setSchool3(resultSet.getString("university"));
            employee.setUserId(resultSet.getInt("userid"));
            employees.add(employee);
        }
        //输出
        employees.forEach(System.out::println);


    }
}

二 主键回显

主键回显指在数据库插入操作后,自动获取数据库生成的主键值(如自增ID、序列值等),并将其回填到程序中的对象或变量中。其核心目的是解决多表关联插入时主键依赖问题,例如:主表插入后需获取自增ID,才能将子表数据的外键关联到该ID

相关文章:

  • C# 确保程序只有一个实例运行
  • 如何确保邮件内容符合不同地区用户的文化习惯
  • 原子性(Atomicity)和一致性(Consistency)的区别?
  • 【备份】php项目处理跨域请求踩坑
  • 【JavaSE-2】数据类型与变量
  • Jmeter接口自动化测试读取用例
  • 快速理解Spring 和 Spring Boot 的核心区别
  • 易错点abc
  • 【前端】简单原生实例合集html,css,js
  • 【芯片设计】NPU芯片前端设计工程师面试记录·20250227
  • 什么是GPU
  • DeepSeek-R1自写CUDA内核跑分屠榜:开启GPU编程自动化新时代
  • 【Python爬虫(96)】从0到1:打造爬虫驱动的数据分析平台
  • 【AI气象强短强3】基于双偏振雷达变量垂直廓线特征的短时强降水和雷暴大风短时临近预报方法
  • 分布式Session
  • 深度学习在自动驾驶车辆车道检测中的应用
  • 提升 Spring Boot 系统性能:高效处理实时数据流的 BufferTrigger 使用详解
  • 从零开始自主「起身站立」,上海AI Lab发布最新控制算法,机器人:起猛了
  • TCP协议工作原理详细介绍(形象举例版)
  • 【读书笔记·VLSI电路设计方法解密】问题56:一种设计的门数是多少
  • 林诗栋/蒯曼混双取胜,国乒赢得多哈世乒赛开门红
  • 受关税政策影响,沃尔玛将上调部分商品在美售价
  • 中国社联成立95周年,《中国社联期刊汇编》等研究丛书出版
  • 奥运“四朝元老”华天回国参赛,伤势未愈谨慎出战全国锦标赛
  • 特朗普促卡塔尔说服伊朗放弃核计划,伊朗总统:你来吓唬我们?
  • 牛市早报|4月新增社融1.16万亿,降准今日正式落地