数据库操作文件 具有极高的重用价值
2008-05-22 17:07
453 查看
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
static private String strDriver = "com.mysql.jdbc.Driver";
static private String strUrl = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gb2312";
static private String strUser = "root";
static private String strPwd = "123456";
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
//写在静态块里面 初始化一次就可以了 节省资源
static {
try {
Class.forName(strDriver);
} catch (ClassNotFoundException ex) {
System.out.println("Error load" + strDriver);
}
}
public DBConnection() {
}
//获得一个 连接对象
private Connection getConnection() {
try {
if (conn == null || conn.isClosed())
conn = DriverManager.getConnection(strUrl, strUser, strPwd);
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return conn;
}
//获得一个Statement对象
private Statement getStatement() {
try {
if (stmt == null)
stmt = getConnection().createStatement();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return stmt;
}
//可执行查询语句 返回一个结果集合
public ResultSet executeQuery(String sql) {
try {
rs = getStatement().executeQuery(sql);
} catch (SQLException ex) {
System.err.println("query error:" + ex.getMessage());
}
return rs;
}
//执行一系列的sql语句 执行成功 返回true 否则false
public boolean executeBatch(java.util.ArrayList sqls) {
boolean bRet = false;
try {
conn = getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
for (int i = 0; i < sqls.size(); i++) {
String sql = (String) sqls.get(i);
stmt.addBatch(sql);
}
stmt.executeBatch();
conn.commit();
bRet = true;
} catch (Exception ex) {
try {
conn.rollback();
} catch (Exception ex2) {
System.err.println("rollback failed:" + ex2.getMessage());
}
ex.printStackTrace();
} finally {
}
return bRet;
}
//执行插入 删除 更新 返回一个数值 (INSERT、UPDATE 或 DELETE 语句)
public int executeUpdate(String sql) {
int resultNum = 0;
try {
resultNum = getStatement().executeUpdate(sql);
} catch (SQLException ex) {
System.err.println("update error:" + ex.getMessage());
} finally {
}
return resultNum;
}
//关闭资源
public void close() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (Exception ex) {
System.err.println("close error:" + ex.getMessage());
}
}
}
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
static private String strDriver = "com.mysql.jdbc.Driver";
static private String strUrl = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gb2312";
static private String strUser = "root";
static private String strPwd = "123456";
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
//写在静态块里面 初始化一次就可以了 节省资源
static {
try {
Class.forName(strDriver);
} catch (ClassNotFoundException ex) {
System.out.println("Error load" + strDriver);
}
}
public DBConnection() {
}
//获得一个 连接对象
private Connection getConnection() {
try {
if (conn == null || conn.isClosed())
conn = DriverManager.getConnection(strUrl, strUser, strPwd);
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return conn;
}
//获得一个Statement对象
private Statement getStatement() {
try {
if (stmt == null)
stmt = getConnection().createStatement();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return stmt;
}
//可执行查询语句 返回一个结果集合
public ResultSet executeQuery(String sql) {
try {
rs = getStatement().executeQuery(sql);
} catch (SQLException ex) {
System.err.println("query error:" + ex.getMessage());
}
return rs;
}
//执行一系列的sql语句 执行成功 返回true 否则false
public boolean executeBatch(java.util.ArrayList sqls) {
boolean bRet = false;
try {
conn = getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
for (int i = 0; i < sqls.size(); i++) {
String sql = (String) sqls.get(i);
stmt.addBatch(sql);
}
stmt.executeBatch();
conn.commit();
bRet = true;
} catch (Exception ex) {
try {
conn.rollback();
} catch (Exception ex2) {
System.err.println("rollback failed:" + ex2.getMessage());
}
ex.printStackTrace();
} finally {
}
return bRet;
}
//执行插入 删除 更新 返回一个数值 (INSERT、UPDATE 或 DELETE 语句)
public int executeUpdate(String sql) {
int resultNum = 0;
try {
resultNum = getStatement().executeUpdate(sql);
} catch (SQLException ex) {
System.err.println("update error:" + ex.getMessage());
} finally {
}
return resultNum;
}
//关闭资源
public void close() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (Exception ex) {
System.err.println("close error:" + ex.getMessage());
}
}
}
相关文章推荐
- 数据库操作文件 具有极高的重用价值
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- 无法升级数据库 'xxxx',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- VC编译没有错误,exe文件操作数据库(ADO/MDB)时报错,解决方法
- 2. 数据库文件配置与简单操作 Model / M()
- [收藏]恢复在为数据库添加多一个ndf文件时,中断操作所置疑的数据库.
- 淘宝内部php操作数据库处理类技术含量极高
- android数据库操作之直接读取db文件
- 批处理下载文件,移动文件,插入数据库,移动文件,删除文件操作
- SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作……错误:3219……”的解决方法
- 多进程同时操作数据库并同时写日志文件,方法中带参数传递
- PHP 操作数据库 创建数据库,导入数据文件,备份数据库
- Hibernate 对数据库Blob图片的查询操作---页面显示图片,文件的输出
- spring-通过JdbcTemplate进行数据库操作-代码实现,无配置文件
- SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法
- sql中遇到非正常操作引起的数据库文件破坏的恢复
- android 数据库技术 | 文件系统,SDCARD访问,CONTENT PROVIDER,SQLITE ,CURSOR操作,CURSOR适配器,SQLITEHELPER,数据库设计模式