首先是配置文件的编写
在IDEA中新建配置文件
在配置文件中写上用户名,密码等可变的东西。再以后业务有改变的时候只需要改变配置文件中的属性
新建一个工具类并写上如下代码:
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* @date 2020/08/28
**/
public class JDBCUtils {
private static DataSource dataSource;
static {
//创建properties对象,用来读取jdbc.properties文件中的内容
Properties properties=new Properties();
//通过类加载器获取jdbc.properties文件的字节输入流
InputStream inputStream =JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
try {
//将jdbc.properties文件中的内容加载到对象的内存中
//jdbc.properties文件中的键必须喝数据源中表示相关信息的属性名保持一致
properties.load(inputStream);
//通过properties对象内存中提供的信息来创建数据源
dataSource= DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection connection=null;
try {
connection =dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
/**
* 释放连接 不是关闭放弃,而是将连接还给数据库连接池
* @param connection
*/
public static void closeConnection(Connection connection){
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
此刻新建一个测试类来测试工具类是否可以使用
import org.junit.Test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* @date 2020/08/28
**/
public class JDBCUtilsTest {
@Test
public void testJDBCUtiles(){
Connection connection=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<User> list=new ArrayList<>();
connection=JDBCUtils.getConnection();
try {
ps=connection.prepareStatement("select * from t_user");
rs=ps.executeQuery();
while (rs.next()){
//把得到的结果写入实体类中
User user=new User(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5));
list.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
//关闭资源
JDBCUtils.closeConnection(connection);
}
for (User user : list) {
System.out.println(user);
}
}
}
得出结果
可以看出测试类可以成功使用。