1、在项目resources
目录下创建db.properties
文件![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/56808996779090724d58cb5d4b155ed7.png)
2、创建好之后,如下图所示
3、在db.properties
文件中添加如下字段
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://192.168.1.3:3306/database?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
user=root
password=root
如下图所示
4、在DAO包中创建类 BaseDao
5、具体代码,包含了数据库的连接和简单的crud(增删改查)
package com.jxa.dao;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
/**
* 操作数据库的基类--静态类
* @author Administrator
*
*/
public class BaseDao {
//静态代码块,在类加载的时候执行,以后可以直接使用
static{
init();
}
//创建于db.properties文件对应的字段
private static String driver;
private static String url;
private static String user;
private static String password;
//初始化连接参数,从配置文件里获得
public static void init(){
Properties properties=new Properties();
String configFile = "db.properties";
//把db.properties资源编程流
InputStream is=BaseDao.class.getClassLoader().getResourceAsStream(configFile);
try {
//properties 加载 流
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//driver驱动获取流的对应字段
driver=properties.getProperty("driver");
url=properties.getProperty("url");
user=properties.getProperty("user");
password=properties.getProperty("password");
}
/**
* 获取数据库连接对象
* @return
*/
//static
public static Connection getConnection(){
Connection connection = null;
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
/**
* 查询操作
* @param connection
* @param pstm
* @param rs
* @param sql
* @param params
* @return
*/
//static
public static ResultSet execute(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet,String sql,Object[] params) throws Exception{
//预编译的sql不需要传参,直接执行即可
preparedStatement = connection.prepareStatement(sql);
for(int i = 0; i < params.length; i++){
preparedStatement.setObject(i+1, params[i]);
}
resultSet = preparedStatement.executeQuery();//新添加sql
return resultSet;
}
/**
* 更新操作
* @param connection
* @param pstm
* @param sql
* @param params
* @return
* @throws Exception
*/
//static
public static int execute(Connection connection,PreparedStatement preparedStatement,String sql,Object[] params) throws Exception{
int updateRows = 0;
preparedStatement = connection.prepareStatement(sql);
for(int i = 0; i < params.length; i++){
preparedStatement.setObject(i+1, params[i]);
}
updateRows = preparedStatement.executeUpdate();
return updateRows;
}
/**
* 释放资源
* @param connection
* @param pstm
* @param rs
* @return
*/
//static
public static boolean closeResource(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet){
boolean flag = true;
if(resultSet != null){
try {
resultSet.close();
resultSet = null;//GC回收
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}
}
if(preparedStatement != null){
try {
preparedStatement.close();
preparedStatement = null;//GC回收
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}
}
if(connection != null){
try {
connection.close();
connection = null;//GC回收
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = false;
}
}
return flag;
}
}