本片文章是对上一篇文章中的事务的例子的功能扩写,用以加深理解,以及代码的熟练度:
(1)数据库表
数据:
(2)引入数据库连接jar包
(3)工具类:
package org.jdbc.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
//操作数据库的工具类
public class DBUtil {
// 私有化构造方法
private DBUtil() {
}
private static String url = null;
private static String user = null;
private static String password = null;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
Properties pro = new Properties();
pro.load(new FileInputStream("src/jdbc.properties"));
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
}
}
// 读取外部属性文件获取连接对象,需手动输入url
public static Connection getConnection1(String url) {
Properties pro = new Properties();
Connection conn = null;
InputStream input = null;
try {
input = new FileInputStream("E:" + File.separator
+ "JDBC.properties");
pro.load(input);
conn = DriverManager.getConnection(url, pro);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
// 读取工程下的配置文件,获取连接对象参数,不需手动输入url
public static Connection getConnection2() throws SQLException {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
}
// 释放全部资源
public static void closeAll(Connection conn, Statement stat, ResultSet rs)
throws SQLException {
if (conn != null) {
conn.close();
}
if (stat != null) {
stat.close();
}
if (rs != null) {
rs.close();
}
}
// 释放所用资源
public static void closePart(Connection conn, Statement stat)
throws SQLException {
if (conn != null) {
conn.close();
}
if (stat != null) {
stat.close();
}
}
}
(4)编写代码:
package org.jdbc.transcation;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import org.jdbc.util.DBUtil;
public class AccountDemo {
// 主方法控制运行方向
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamR