想把所有与数据库操作相关的封装成一个类,哪位大虾有好的源码?
谢谢
IBM的java区有很多好的中文文章关于数据库封装的,还有源码,你可以看看。其实自己写一个最好不过了。
http://www-900.ibm.com/developerWorks/cn/java/jdbc-objects/index.shtml
http://www-900.ibm.com/developerWorks/cn/java/j-jdbcwrap/index.shtml
http://www-900.ibm.com/developerWorks/cn/java/l-jdbcwrap/index.shtml
package org.gstone.web;
import java.sql.*;
public class Mssql {
private Connection conn = null;
private Statement stmt = null;
private PreparedStatement prepstmt = null;
private String dbdriver = "com.inet.tds.TdsDriver";
private String dburl = "jdbc:inetdae:localhost?sql2000=true";
/**
* 构造数据库的连接和访问类
*/
public Mssql() throws Exception {
Class.forName(dbdriver);
conn = DriverManager.getConnection(dburl,"bhr","bhr2000");
stmt = conn.createStatement();
}
public Mssql(String sql) throws Exception {
Class.forName(dbdriver);
conn = DriverManager.getConnection(dburl,"bhr","bhr2000");
this.prepareStatement(sql);
}
public Mssql(int resultSetType, int resultSetConcurrency) throws Exception {
Class.forName(dbdriver);
conn = DriverManager.getConnection(dburl,"bhr","bhr2000");
stmt = conn.createStatement(resultSetType, resultSetConcurrency);
}
/**
* 返回连接
* @return Connection 连接
*/
public Connection getConnection() {
return conn;
}
/**
* PreparedStatement
* @return sql 预设SQL语句
*/
public void prepareStatement(String sql) throws SQLException {
prepstmt = conn.prepareStatement(sql);
}
/**
* 设置对应值
* @param index 参数索引
* @param value 对应值
*/
public void setString(int index,String value) throws SQLException {
prepstmt.setString(index,value);
}
public void setInt(int index,int value) throws SQLException {
prepstmt.setInt(index,value);
}
public void setBoolean(int index,boolean value) throws SQLException {
prepstmt.setBoolean(index,value);
}
public void setDate(int index,Date value) throws SQLException {
prepstmt.setDate(index,value);
}
public void setLong(int index,long value) throws SQLException {
prepstmt.setLong(index,value);
}
public void setFloat(int index,float value) throws SQLException {
prepstmt.setFloat(index,value);
}
public void clearParameters()
throws SQLException
{
prepstmt.clearParameters();
}
/**
* 返回预设状态
*/
public PreparedStatement getPreparedStatement() {
return prepstmt;
}
/**
* 返回状态
* @return Statement 状态
*/
public Statement getStatement() {
return stmt;
}
/**
* 执行SQL语句返回字段集
* @param sql SQL语句
* @return ResultSet 字段集
*/
public ResultSet executeQuery(String sql) throws SQLException {
if (stmt != null) {
return stmt.executeQuery(sql);
}
else return null;
}
public ResultSet executeQuery() throws SQLException {
if (prepstmt != null) {
return prepstmt.executeQuery();
}
else return null;
}
/**
* 执行SQL语句删除字段集
* @param sql SQL语句
* @return ResultSet 字段集
*/
public void execute(String sql) throws SQLException {
if (stmt != null)
stmt.execute(sql);
}
/**
* 执行SQL语句
* @param sql SQL语句
*/
public void executeUpdate(String sql) throws SQLException {
if (stmt != null)
stmt.executeUpdate(sql);
}
public void executeUpdate() throws SQLException {
if (prepstmt != null)
prepstmt.executeUpdate();
}
public int myUpdate(String sql) throws SQLException {
if (stmt != null)
return stmt.executeUpdate(sql);
return 0;
}
/**
* 关闭连接
*/
public void close() throws Exception {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (prepstmt != null) {
prepstmt.close();
prepstmt = null;
}
conn.close();
conn = null;
}
public static String inputChinese(String s){
String temp=null;
byte db[];
try{
db=s.getBytes();
temp=new String(db,"iso-8859-1");
}catch(Exception e){
System.out.println(e);
}
return temp;
}
public static String outputChinese(String s){
String temp=null;
byte db[];
try{
db = s.getBytes("iso-8859-1");
temp = new String(db);
}catch(Exception e){
System.out.println(e);
}
return temp;
}
public static String Len(String s){
if (s==null)
{
return "";
}
String temp=null;
int i = s.length();
if (i>=16)
{
temp = s.substring(0,13) + "...";
}else{
temp = s;
}
return temp;
}
}