通过jdbc对数据库中雇员表的查询

1.首先创建雇员类与数据库中的字段一一对应,并设置getter,setter,toString方法。
在这里插入图片描述
在这里插入图片描述

package com.bdqn.bean;
import java.util.Date;
public class Employee {

    private Integer employeeId;
    private String name;
    private String deptCode;

    private Date hireDate;

    private Double salary;

    private String phoneNumber;

    private Integer managerId;

    public Integer getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Integer employeeId) {
        this.employeeId = employeeId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public Integer getManagerId() {
        return managerId;
    }

    public void setManagerId(Integer managerId) {
        this.managerId = managerId;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "employeeId=" + employeeId +
                ", name='" + name + '\'' +
                ", deptCode='" + deptCode + '\'' +
                ", hireDate=" + hireDate +
                ", salary=" + salary +
                ", phoneNumber='" + phoneNumber + '\'' +
                ", managerId=" + managerId +
                '}';
    }
}

2.在https://mvnrepository.com下载驱动包。
在这里插入图片描述
输入mtsql,然后搜索
在这里插入图片描述
点击MySQL Connecter/J
在这里插入图片描述

不要选择有红色单词的,因为有缺陷
在这里插入图片描述
点击jar下载
在这里插入图片描述
然后在ieda中新建一个lib目录,下载好的mysql驱动复制过来
在这里插入图片描述
接下来将驱动加入library中,右击jar包,选择Add as Library
在这里插入图片描述
点击OK,驱动加入成功
在这里插入图片描述
3.接下来进行连接数据库和测试,分为以下几步:
<1> 安装驱动包,加载驱动
<2> 建立连接
<3>创建sql ,并设置参数
<4>.发送sql,并执行
<5>获取结果集,并封装成java实例
<6>关闭资源

package com.bdqn.bean;
import java.sql.*;
import java.util.ArrayList;

/**
 * @author NXX
 * @version 1.0
 * @date 2022/8/1 13:26
 */
/**
 * 1、Java 编程
 * 2、Sql  语法
 * JDBC 发送 Sql
 * Java    ----->    Mysql
 */
public class  JdbcForData {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 1、安装驱动包,加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        // 2、建立连接
        /**
         * String url : 数据的连接信息 ---> 协议 + ip地址+port端口号 + 访问的数据库的名称
         * String user : 访问数据库的账户
         * String password : 访问数据库的密码
         * 异常 :  InvalidConnectionAttributeException: The server time zone
         * 解决 :  在URL后面 添加 ?serverTimezone=UTC或?serverTimezone=Asia/Shanghai
         */
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java2215?serverTimezone=Asia/Shanghai", "root", "135212");

        // 3、创建sql ,并设置参数

        //该对象主要用来发送sql
        PreparedStatement pstt = conn.prepareStatement("select * from L_employee");

        /**
         * executeQuery 方法:负责将 sql 语句发送到数据库并执行。
         * ResultSet : 将查询返回的结果封装到 ResultSet类型的对象中。
         */

        // 4、发送sql,并执行
        ResultSet rs = pstt.executeQuery();

        // 5、获取结果集,并封装成java实例
        //由于查询多条数据,用集合存储
        ArrayList<Employee> employees = new ArrayList<Employee>();

        /**
         * rs.next() :  指针 --->每调用一次该方法啊,指针就会移动一行。
         */
        while(rs.next()){
            Employee emp = new Employee();
            emp.setEmployeeId(rs.getInt("employee_id"));
            emp.setName(rs.getString("name"));
            emp.setDeptCode(rs.getString("dept_code"));
            // 数据库中取出的类型  java.sql.Date;
            //Employee类中 声明的日期类型  java.util.Date
            //                 long
            //  java.sql.Date  --- >  java.util.Date
            Date hire_date = rs.getDate("hire_date");
            emp.setHireDate(new java.util.Date(hire_date.getTime()));
            emp.setSalary(rs.getDouble("salary"));
            emp.setPhoneNumber(rs.getString("phone_number"));
            emp.setManagerId(rs.getInt("manager_id"));
            employees.add(emp);
        }
        //lambda表达式
        employees.forEach(a-> System.out.println(a));
        // 6、关闭资源
        rs.close();
        pstt.close();
        conn.close();

    }
}

运行结果:
在这里插入图片描述
4.数据库连接信息
​ 通过Class.forName(“com.mysql.cj.jdbc.Driver”),我们已经加载了驱动,接下来我们需要 通过DriverManager类来获取连接信息:
①、URL
JDBC URL 用于驱动程序在访问数据库时能够正确的建立连接通道。
JDBC URL 分成 jdbc:子协议:子名称 几个部分

  • jdbc:JDBC URL的协议一般叫做 jdbc。
  • 子协议:根据不同的数据库供货商,使用的子协议不同,比如MySQl数据库,使用的是mysql协议。
  • 子名称:子名称的目的是为了标识要访问数据库的信息。(IP地址+端口号+数据库名称)。
    ②、用户名和密码
    这里的用户名和密码即是数据库需要验证的账户和密码。
    ③、关于Mysql驱动版本

使用com.mysql.jdbc.Driver的时候,导入的是 mysql-connector-java 5

使用com.mysql.cj.jdbc.Driver的时候,导入的是 mysql-connector-java 8

关于url连接参数:

jdbc:mysql://localhost:3306/lunches?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&userSSL=flase
  • useUnicode=true : 是否使用的是 unicode编码格式。
  • characterEncoding=utf-8 : 设置客户端连接编码集为 UTF-8
  • serverTimezone=UTC :设置时区 UTC 模式
  • userSSL=flase : 证书验证,一般设置成false即可
    注意:使用UTC会有8小时的时差(中国快全球标准8小时),可设置为北京时间东八区 GMT%2B8 或者上海时间Asia/Shanghai
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值