如何做?
1.创建jdbc.properties属性文件,写上driverClass、url、user、password信息。
2.创建一个用来封装JDBC代码的类(JDBC_Utils)
3.静态代码块中写注册驱动,然后封装获取Connection的方法,最后封装dml资源的关闭以及dql资源的关闭。
4.创建一个类来测试代码。
1.创建jdbc.properties属性文件,写上driverClass、url、user、password信息。
代码:
driverClass=com.mysql.jdbc.Driver
//向MySQL导入数据可能会出现乱码问题,所以手动将编码改成utf-8
url=jdbc:mysql://localhost:3306/dbtest?UserUnicode=true&characterEncoding=utf-8
user:root
password:root
2.创建一个用来封装JDBC代码的类(JDBC_Utils)
3.静态代码块中写注册驱动,然后封装获取Connection的方法,最后封装dml资源的关闭以及dql资源的关闭。
代码:
package com.company;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
public class JDBC_Utils {
//创建一个属性文件对象
public static Properties properties=new Properties();
//驱动加载在整个程序中只加载一次,所以放到静态语句块中
static {
FileInputStream fileInputStream=null;
try {
//创建一个文件输出流对象,读取文件
fileInputStream=new FileInputStream("./src/jdbc.properties");
//加载到属性文件中
properties.load(fileInputStream);
//属性文件调用getProperty方法传递关键字得到属性值
String driverClass = properties.getProperty("driverClass");
Class.forName(driverClass);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if(fileInputStream!=null){
try {
fileInputStream.close(); //流开了要关
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//获取连接
public static Connection getConnection() {
String url=properties.getProperty("url");
String user=properties.getProperty("user");
String password=properties.getProperty("password");
Connection connection= null;
try {
connection = DriverManager.getConnection(url,user,password);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return connection;
}
//DML关闭资源
public static void closeResource(Connection conn, Statement stat){
try {
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//DQL关闭资源
public static void closeResource(Connection conn, Statement stat, ResultSet set){
try {
if (set!=null){
set.close();
}
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
4.创建一个类来测试代码。
package com.company;
import org.junit.Test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Utils_test {
@Test
public void insert() throws SQLException {
Connection connection=JDBC_Utils.getConnection();
PreparedStatement stat=connection.prepareStatement("insert into dd value (null,?,?,?)");
stat.setObject(1,"钟杭冲");
stat.setObject(2,"男");
stat.setObject(3,15);
int row=stat.executeUpdate();
System.out.println(row>0?"添加成功":"添加失败");
JDBC_Utils.closeResource(connection,stat);
}
}
结果展示: