JDBC工具类代码
一,注册驱动抽取
二,mysql数据库连接抽取
三,释放资源抽取
第一步:在SRC下创建配置文件,用来储存动态的数据库变量
url=jdbc:mysql://localhost:3306/db01?serverTimezone=UTC//换成你的数据链接
user=root//换成你的数据库账户
password=password//换成你的数据库密码
driver=com.mysql.cj.jdbc.Driver//换成你的数据库驱动
第二步:创建JAVA工具类
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
/**
* JDBC工具类
*/
public class JDBC_utils {
//创建静态变量 只有静态的变量才能被静态代码块和静态方法访问
private static String url;
private static String user;
private static String password;
private static String driver;
/**
* 使用静态代码块进行一次调用配置文件完成数据库连接
*/
static {
try { //创建properties集合类对象
Properties pro = new Properties();
//src下动态获取文件的方法--class类加载器
ClassLoader classLoader = JDBC_utils.class.getClassLoader();
URL resource = classLoader.getResource("JDBC.properties");
String path = resource.getPath();
System.out.println(path);
//通过load来获取配置数据
pro.load(new FileReader(path));
//获取配置文件数据
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//注册驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接对象的方法
*
* @return 返回一个连接对象
*/
public static Connection getConnections() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void Close(Statement sta, Connection con) {
if (sta != null) {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void Close(ResultSet res, Statement sta, Connection con) {
if (sta != null) {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (res != null) {
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
第三步:在实例中使用工具类,这里我使用了一份数据库,可自行替换成自己的数据库
import cn.jdbc02.emp;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class jdbcdemo7 {
/**
* 演示JDBC工具类
*
* @param args
*/
public static void main(String[] args) {
List<emp> list = new jdbcdemo7().findall2();
System.out.println(list);
System.out.println(list.size());
for (emp a : list
) {
System.out.println(a + "\t");
}
}
public List<emp> findall2() {
Connection connections = null;
Statement statement = null;
ResultSet resultSet = null;
List<emp> list = null;
//注册驱动
try {
connections = JDBC_utils.getConnections();
//定义sql语句
String sql = "select * from emp";
//获取执行sql对象
statement = connections.createStatement();
//执行sql
resultSet = statement.executeQuery(sql);
//获取结果集 封装对象 装载集合
emp emp = null;
list = new ArrayList<emp>();
while (resultSet.next()) {
//获取数据
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String gender = resultSet.getString("gender");
double salary = resultSet.getDouble("salary");
Date join_date = resultSet.getDate("join_date");
int dept_id = resultSet.getInt("dept_id");
//创建emp对象 并赋值
// emp = new emp();
// emp.setId(id);
// emp.setName(name);
// emp.setGender(gender);
// emp.setJoin_date(join_date);
// emp.setSalary(salary);
// emp.setDept_id(dept_id);
emp = new emp(id, name, gender, salary, join_date, dept_id);
//装载集合
list.add(emp);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBC_utils.Close(resultSet, statement, connections);
}
return list;
}
}
第四步,运行结果:
第五:附录一份文章内使用的数据库sql
/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 8.0.18
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
create table `emp` (
`id` int (11),
`name` varchar (30),
`gender` char (3),
`salary` double ,
`join_date` date ,
`dept_id` int (11)
);
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('1','孙悟空','男','7200','2013-02-24','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('2','猪八戒','男','3600','2010-12-02','2');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('3','白骨精','女','5000','2015-10-07','3');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('4','蜘蛛精','女','4500','2011-03-14','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('5','孙悟空','男','7200','2013-02-24','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('6','猪八戒','男','3600','2010-12-02','2');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('7','唐僧','男','9000','2008-08-08','2');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('8','白骨精','女','5000','2015-10-07','3');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('9','蜘蛛精','女','4500','2011-03-14','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('10','小白龙','男','3000',NULL,NULL);