JDBC 工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
JDBC工具类封装、封装DAO方法与数据库表实体类封装
准备:
MySQL数据表:
CREATE TABLE `数据库名称`.`emp` ( `id` int NOT NULL COMMENT 'id', `name` varchar(255) NULL COMMENT '姓名', `department` varchar(255) NULL COMMENT '任务组', PRIMARY KEY (`id`) );
--添加几条数据
insert into emp (id,name,department) values (10,"note","159");
insert into emp (id,name,department) values (20,"lik","152");
insert into emp (id,name,department) values (30,"bybe","132");
insert into emp (id,name,department) values (40,"mrcheng","322"
JDBC 工具封装类:
package JDBCTest;
import java.sql.*;
/**
* 方法描述
*
* @since: 1.0.0
* @param: jdbc工具类 对一些操作进行封装
* @JDBCUtils: JDBCUtils
* @author: Mr.cheng
* @date: 2021/1/14 8:57
*/
public class JDBCUtils {
Connection coon = null;
PreparedStatement ps = null;
//使静态代码块对需要低用该工具类就能执行,平切只执行一次
static {
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("注册驱动已执行!");
}
/**
* @return 注册连接
*/
public Connection coonManger() {
try {
coon = DriverManager.getConnection("jdbc:mysql://localhost:3306/center", "root", "123456");
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("程序注册链接失败!");
}
System.out.println("加载驱动已执行!");
return coon;
}
/**
* 方法描述 表示预编译SQL语句的对象。
*
* @since: 1.0.0
* @param: [sql]
* @return: java.sql.PreparedStatement
* @author: Mr
* @date: 2021/1/14 9:18
*/
public PreparedStatement prepare(String sql) throws Exception {
try {
ps = coon.prepareStatement(sql);
} catch (SQLException eps) {
eps.printStackTrace();
System.out.println("获取数据库解析失败!");
}
return ps;
}
//关闭资源
public void close() {
if (coon != null) {
try {
coon.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
//包含结果集ResultSet 查询结构及进行关闭
public void resultSet(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//调用关闭资源的
close();
}
}
使用案列:
package JDBCTest;
import JDBCTest.dao.EmpDao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
import java.util.Scanner;
public class UtilTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Connection coon = null;
PreparedStatement ps = null;
String id, name, department;
int faly = 0;
JDBCUtils utils = new JDBCUtils();
Emp emp = new Emp();
EmpDao dao = new EmpDao();
System.out.println("****欢迎来到猪猪世界****");
System.out.println("请输入你要办理的业务");
System.out.println("1.添加朋友");
System.out.println("2.清除朋友");
System.out.println("3.更新朋友");
System.out.println("4.我的好友");
System.out.println("请选择功能!");
faly = scanner.nextInt();
if (faly == 1) {
System.out.println("请输入添加ID,必须为数字");
id = scanner.next();
System.out.println("请输入添加姓名,必须为字符型");
name = scanner.next();
System.out.println("请输入添加分组,必须为字符型");
department = scanner.next();
dao.empAdd(id, name, department);
} else if (faly == 2) {
System.out.println("请输入删除ID,必须为数字");
id = scanner.next();
dao.Depdetele(id);
} else if (faly == 3) {
System.out.println("请输入添加ID,必须为数字");
id = scanner.next();
System.out.println("请输入新的姓名");
name = scanner.next();
System.out.println("请输入新的分组名称");
department = scanner.next();
dao.DepUpdate(name, department, id);
} else if (faly == 4){
System.out.println("*********正在查新中*******");
List<Emp> list = dao.reSet();
for (Emp emplist :list
) {
System.out.println("ID编号"+emplist.getId()+"姓名:"+emplist.getName()+"任务组:"+emplist.getDepartment());
}
}
}
}
封装DAO:
package JDBCTest.dao;
import JDBCTest.JDBCUtils;
import JDBCTest.Emp;
import javax.swing.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class EmpDao {
JDBCUtils util = new JDBCUtils();
Connection coon = null;
PreparedStatement ps = null;
ResultSet rs = null;
public int empAdd(String id, String name, String department) {
String sql_1 = "insert into emp (id,NAME,department) values (?,?,?) ";
//返回执行的条数
int i = 0;
try {
coon = util.coonManger();
ps = util.prepare(sql_1);
ps.setInt(1, Integer.parseInt(id));
ps.setString(2, name);
ps.setString(3, department);
i = ps.executeUpdate();
System.out.println("更新数据成功一条!");
} catch (Exception e) {
e.printStackTrace();
} finally {
util.close();
}
if (i == 1) {
System.out.println("插入成功!");
} else {
System.out.println("插入失败!");
}
return i;
}
public int Depdetele(String id) {
String sql_2 = "delete from emp where id =? ";
//记录执行的条数并返回
int i = 0;
try {
coon = util.coonManger();
ps = util.prepare(sql_2);
ps.setInt(1, Integer.valueOf(id));
i = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
util.close();
}
if (i == 1) {
System.out.println("删除成功!");
} else {
System.out.println("删除失败!");
}
return i;
}
public int DepUpdate(String name, String deparment, String id) {
String sql_3 = "update emp SET name = ? ,department = ? WHERE id= ? ";
int i = 0;
try {
coon = util.coonManger();
ps = util.prepare(sql_3);
ps.setString(1, name);
ps.setString(2, deparment);
ps.setString(3, id);
i = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
util.close();
}
if (i == 1) {
System.out.println("更新成功!");
} else {
System.out.println("更新失败!");
}
return i;
}
public List reSet() {
String sql = "select * from emp";
coon = util.coonManger();
List list = new ArrayList();
try {
ps = coon.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String department = rs.getString("department");
Emp emp =new Emp(id,name,department);
list.add(emp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
util.resultSet(rs);
}
return list;
}
}

浙公网安备 33010602011771号