JDBC
简介
Java DataBase Connectivity Java数据库连接
我们学习的技术是JDBC 不是 MYSQLJDBC 也不是 ORACLE JDBC JDBC是一套标准,是Java与各大数据库厂商共同定制的一套接口. 这套接口由各大数据库厂商进行了实现.
使用步骤: (6步)
- 引入jar文件.
- 加载数据库驱动 (JavaSE项目中可以省略 , JavaWeb项目必须编写此步骤) Class.forName(“com.mysql.jdbc.Driver”);
- 通过驱动管理器, 获取JDBC连接对象.
Connection conn = DriverManager.getConnection(“数据库连接地址”,“帐号”,“密码”);
数据库连接地址格式: 主协议:子协议://ip地址:端口号/数据库名称
mysql的连接地址:
jdbc:mysql://localhost:3306/java35
oracle的连接地址: jdbc:oracle:thin:@localhost:1521:ORCL - 通过连接对象, 创建SQL执行对象 (SQL执行环境) Statement state = conn.createStatement();
- 通过SQL执行对象 ,执行SQL语句. state.execute(String sql语句);
- 释放资源
state.close();
conn.close();
工厂方法设计模式 ( 静态工厂方法模式)
工厂方法模式一种创建对象的模式. 工厂方法模式基于"输入",应用在超类和多个子类之间的情况,这种模式将创建对象的责任转移到工厂类;
工厂设计模式的优点:
- 面向接口编程,体现了面向对象的思想
- 降低了耦合, 将创建对象的工作转移到了工厂类
DAO
***DAO(Data Access Object)***是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务 逻辑与数据库资源中间。
为了建立一个健壮的Java应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的 语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中, 当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个 特定的数据存储。
DAO模式是标准的JavaEE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分 开.一个典型的DAO实现有下列几个组件:
- 一个DAO工厂类;
- 一个DAO接口;
- 至少一个实现DAO接口的具体类;
- 数据传递对象(有些时候叫做Bean对象).
JDBC完成人事管理系统
完成人事管理系统,实现人事数据保存到数据库,能够实现人事数据的增、删、改、查
随着我国疫情的好转,目前大部分的企业已经实现全面复工,小明所在的公司最近正 在进行大量的招聘人员(由于疫情期间影响,目前该公司只有5名员工),该公司想在最 近开发一套简易的系统实现人事的管理;
User类
public class User {
private int e_id ;
private String e_name;
private Double e_salary;
private String e_hiredate ;
private int manager_id;
public User(int e_id, String e_name, double e_salary, String e_hiredate, int manager_id) {
this.e_id = e_id;
this.e_name = e_name;
this.e_salary = e_salary;
this.e_hiredate = e_hiredate;
this.manager_id = manager_id;
}public int getE_id() {
return e_id;
}
public void setE_id(int e_id) {
this.e_id = e_id;
}
public double getE_salary() {
return e_salary;
}
public void setE_salary(double e_salary) {
this.e_salary = e_salary;
}
public void setE_hiredate(String e_hiredate) {
this.e_hiredate = e_hiredate;
}
public int getManager_id() {
return manager_id;
}
public void setManager_id(int manager_id) {
this.manager_id = manager_id;
}
public String getE_name() {
return e_name;
}
public void setE_name(String e_name) {
this.e_name = e_name;
}
public User(int e_id, String e_name) {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return e_id == user.e_id &&
Double.compare(user.e_salary, e_salary) == 0 &&
manager_id == user.manager_id &&
Objects.equals(e_name, user.e_name) &&
Objects.equals(e_hiredate, user.e_hiredate);