抽取JDBCUtils工具类简化开发
package utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBCUtils工具类
* @author me
*
*/
public class JDBCUtils {
//构造方法私有
private JDBCUtils() {}
/**
* 注册驱动
*/
public static void loadDriver() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取数据库链接对象
* @return 链接对象
*/
public static Connection getConnection() {
try {
return DriverManager.getConnection("jdbc:mysql:///testjdbc", "root", "123");
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 释放资源
* @param conn数据库链接对象
* @param stat执行SQL语句的对象
* @param rs结果集对象
*/
public static void release(Connection conn, Statement stat, ResultSet rs) {
try {
if(rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(stat != null) {
stat.close();
stat = null;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/**
* 释放资源
* @param conn数据库链接对象
* @param stat执行SQL语句的对象
*/
public static void release(Connection conn, Statement stat) {
try {
if(stat != null) {
stat.close();
stat = null;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
通过JDBCUtils进行增删改查:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import utils.JDBCUtils;
public class JDBC_Utils_CURD {
/**
* 增加
*/
@Test
public void method1() {
JDBCUtils.loadDriver();
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils.getConnection();
stat = conn.createStatement();
String sql = "insert into student values(null, 'zhangsan1')";
int r = stat.executeUpdate(sql);
if(r > 0) {
System.out.println("添加成功");
System.out.println(r + "行受到影响");
} else {
System.out.println("添加失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.release(conn, stat);
}
}
/**
* 删除
*/
@Test
public void method2() {
JDBCUtils.loadDriver();
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils.getConnection();
stat = conn.createStatement();
String sql = "delete from student where name = 'zhangsan'";
int r = stat.executeUpdate(sql);
if(r > 0) {
System.out.println("删除成功");
System.out.println(r + "行受到影响");
} else {
System.out.println("删除失败");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 修改
*/
@Test
public void method3() {
JDBCUtils.loadDriver();
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils.getConnection();
stat = conn.createStatement();
String sql = "update student set name = 'zhangsan' where name = 'zhangsan1'";
int r = stat.executeUpdate(sql);
if(r > 0) {
System.out.println("修改成功");
System.out.println(r + "行受到影响");
} else {
System.out.println("修改失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.release(conn, stat);
}
}
/**
* 查询
*/
@Test
public void method4() {
JDBCUtils.loadDriver();
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
conn = JDBCUtils.getConnection();
stat = conn.createStatement();
String sql = "select * from student";
rs = stat.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getInt("id") + "---" + rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.release(conn, stat, rs);
}
}
}
读取配置文件版JDBCUtils2
config.properties:
driverName = com.mysql.jdbc.Driver
#url的格式:jdbc:mysql://ip:port/数据库名
url = jdbc:mysql:///testjdbc
username = root
password = 123
package utils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* JDBCUtils读取配置文件版
* @author me
*/
public class JDBCUtils2 {
private static String driverName;
private static String url;
private static String username;
private static String password;
/**
* 构造函数私有化
*/
private JDBCUtils2() {}
/**
* 读取配置文件,然后将值赋给成员变量
*/
public static void readConfig() {
Properties pp = new Properties();
try {
pp.load(new FileInputStream("src/config.properties"));
driverName = pp.getProperty("driverName");
url = pp.getProperty("url");
username = pp.getProperty("username");
password = pp.getProperty("password");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 注册驱动
*/
static {
readConfig();
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取链接对象
* @return Connection
*/
public static Connection getConnection() {
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 释放资源
* @param conn
* @param stat
* @param rs
*/
public static void release(Connection conn, Statement stat, ResultSet rs) {
try {
if(rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(stat != null) {
stat.close();
stat = null;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/**
* 释放资源
* @param conn
* @param stat
*/
public static void release(Connection conn, Statement stat) {
try {
if(stat != null) {
stat.close();
stat = null;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
使用JDBCUtils2进行增删改查
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import utils.JDBCUtils2;
/**
* 使用读取配置文件的JDBCUtils省去了JDBCUtils.loadDrever();
* 读取配置文件的信息放入了静态代码块中
* @author me
*/
public class JDBC_Utils2_CURD {
/**
* 增加
*/
@Test
public void method1() {
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils2.getConnection();
stat = conn.createStatement();
String sql = "insert into student values(null, 'zhangsansan')";
int r = stat.executeUpdate(sql);
if(r > 0) {
System.out.println("插入成功");
System.out.println(r + "条数据受到影响");
} else {
System.out.println("插入失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils2.release(conn, stat);
}
}
/**
* 删除
*/
@Test
public void method2() {
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils2.getConnection();
stat = conn.createStatement();
String sql = "delete from student where name = 'zhangsansan'";
int r = stat.executeUpdate(sql);
if(r > 0) {
System.out.println("删除成功");
System.out.println(r + "条数据受到影响");
} else {
System.out.println("删除失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils2.release(conn, stat);
}
}
/**
* 修改
*/
@Test
public void method3() {
Connection conn = null;
Statement stat = null;
try {
conn = JDBCUtils2.getConnection();
stat = conn.createStatement();
String sql = "update student set name = 'zhangsansan' where name = 'zhangsan'";
int r = stat.executeUpdate(sql);
if(r > 0) {
System.out.println("修改成功");
System.out.println(r + "条数据受到影响");
} else {
System.out.println("修改失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils2.release(conn, stat);
}
}
/**
* 查询
*/
@Test
public void method4() {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
conn = JDBCUtils2.getConnection();
stat = conn.createStatement();
String sql = "select * from student";
rs = stat.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getInt("id") + "---" + rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils2.release(conn, stat, rs);
}
}
}