master
parent
be6af6fd6a
commit
9bacad5c21
@ -0,0 +1,123 @@
|
||||
import java.io.File;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* Client
|
||||
*
|
||||
* @author wangbing
|
||||
*/
|
||||
public class Client {
|
||||
|
||||
Connection connection;
|
||||
Statement statement;
|
||||
ResultSet resultSet;
|
||||
String dbFilePath;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
*
|
||||
* @param dbFile 文件
|
||||
* @throws ClassNotFoundException
|
||||
* @throws SQLException
|
||||
*/
|
||||
public Client(File dbFile) throws ClassNotFoundException, SQLException {
|
||||
this.dbFilePath = dbFile.getAbsolutePath();
|
||||
if (!dbFile.exists()) {
|
||||
connection = getConnection();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行sql语句
|
||||
*
|
||||
* @param sql
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public void execute(String sql) throws SQLException, ClassNotFoundException {
|
||||
try {
|
||||
getStatement().execute(sql);
|
||||
} finally {
|
||||
destroyed();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行sql查询语句
|
||||
*
|
||||
* @param sql
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public ResultSet executeQuery(String sql) throws SQLException, ClassNotFoundException {
|
||||
return getStatement().executeQuery(sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行sql更新语句
|
||||
*
|
||||
* @param sqls
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public int executeUpdate(String... sqls) throws SQLException, ClassNotFoundException {
|
||||
int count = 0;
|
||||
try {
|
||||
for (String sql : sqls) {
|
||||
count += getStatement().executeUpdate(sql);
|
||||
}
|
||||
} finally {
|
||||
destroyed();
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据库连接
|
||||
*
|
||||
* @return 数据库连接
|
||||
* @throws ClassNotFoundException
|
||||
* @throws SQLException
|
||||
*/
|
||||
Connection getConnection() throws ClassNotFoundException, SQLException {
|
||||
if (null == connection) {
|
||||
Class.forName("org.sqlite.JDBC");
|
||||
connection = DriverManager.getConnection("jdbc:sqlite:" + dbFilePath);
|
||||
}
|
||||
return connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据库Statement对象
|
||||
*/
|
||||
Statement getStatement() throws SQLException, ClassNotFoundException {
|
||||
if (null == statement) {
|
||||
statement = getConnection().createStatement();
|
||||
}
|
||||
return statement;
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据库资源关闭和释放
|
||||
*/
|
||||
public void destroyed() {
|
||||
try {
|
||||
if (null != resultSet) {
|
||||
resultSet.close();
|
||||
resultSet = null;
|
||||
}
|
||||
|
||||
if (null != statement) {
|
||||
statement.close();
|
||||
statement = null;
|
||||
}
|
||||
if (null != connection) {
|
||||
connection.close();
|
||||
connection = null;
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue