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