三层架构 — 用升级后的工具类完成MySQL项目–通讯录管理系统
1. 代码结构-- 三层架构-- 规范 – 面向接口编程
View层 — 视图/UI — 和用户交互
Service层— 业务 — 对Dao层方法的组合
Dao层 — 和数据库交换,进行增删改查操作,每个方法的代码只进行最细粒度的增删改查— 只能运行一条SQL语句
TelephoneItem接口
TelephoneItem接口实现类1–MySql
TelephoneItem接口实现类2–SQLServer
实体类 – 表示通讯录信息的实体类 — 和表对应
2.写代码–使用工具类
3.Junit单元测试
通讯录管理系统
目录如下
这里有一个小错误(UI应该新建一个view文件夹放在view目录下)
第一步 配置好文件和工具类
在项目下新建lib存放导入的jar包
如何将lib设置为Library
在src下新建配置文件jdbc.properties
- 注意!! 这里的这个连接池的properties文件内容前面的key值不能改!!!
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/telephone?useSSL=false
username=root
password=1234
#初始化连接数量
initialSize=10
#最大连接数量
maxActive=50
#最小空闲连接
minIdle=5
新建utils目录 存放用到的工具类
package com.sdut.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcUtil {
//使用连接池来保存四大参数
private static DataSource dataSource;
static {
try {
//读取配置文件到输入流
InputStream in = JdbcUtil.class.getResourceAsStream("/jdbc.properties");
Properties properties = new Properties();
//加载配置文件中的数据到Properties中
properties.load(in);
//创建连接池
dataSource = DruidDataSourceFactory.createDataSource(properties);//配置文件的内容key键是固定的一点不能改!!
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接
public static Connection getConnection() {
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return connection;
}
//释放资源
public static void close(Connection connection, Statement statement, ResultSet rSet) {
try {
if(rSet != null) {
rSet.close();
}
if(statement != null) {
statement.close();
}
if(connection != null) {
connection.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//public static void main(String[] args) {
// Connection conn = JdbcUtil.getConnection();
// System.out.println(conn);
//}
}
新建bean目录
在bean目录下写实体类 — 和表对应
package com.sdut.bean;
/**
* 表示通讯录信息的实体类---和telephone表对应
* 遵循JavaBean的原则
* 1.private
* 2.get/set
* 3.默认的构造方法
*/
public class Telephone {
private Integer id;
private String name;
private String gender;
private Integer age;
private String tel;
private String qq;
private String addr;
public Telephone() {
}
public Telephone(String name, String gender, Integer age, String tel, String qq, String addr) {
this.name = name;
this.gender = gender;
this.age = age;
this.tel = tel;
this.qq = qq;
this.addr = addr;
}
public Telephone(Integer id, String name, String gender, Integer age, String tel, String qq, String addr) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.tel = tel;
this.qq = qq;
this.addr = addr;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override</