📄 flashdbdao.java
字号:
//***************************************************************
//对数据库进行各种操作的类
//***************************************************************
package conn;
import java.sql.*;
import java.util.List;
import java.util.ArrayList;
import face.*;
public class FlashDbDao
{
private static FlashDbDao op; //定义一个实例
private String driver;
private String url;
private String username;
private String pass;
private String sql;
private Connection conn;
private PreparedStatement pstmt;
private FlashDbDao()
{
}
//接受参数的构造器
private FlashDbDao(String driver,String url,String username,String pass)throws Exception
{
this.driver = driver;
this.url = url;
this.username = username;
this.pass = pass;
Class.forName(driver);
conn = DriverManager.getConnection(url,username,pass);
}
public ResultSet getRs() throws Exception
{
return pstmt.executeQuery();
}
public void setPstmt(String sql) throws Exception
{
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
//-----------------------------------------------------------------------------------------
//end
//-----------------------------------------------------------------------------------------
public void setPstmtInt(int num, int value) throws Exception
{
if(pstmt != null)
pstmt.setInt(num,value);
}
public void setPstmtString(int num, String value) throws Exception
{
if(pstmt != null)
pstmt.setString(num,value);
}
public void setPstmtInt(int num, Date value) throws Exception
{
if(pstmt != null)
pstmt.setDate(num,value);
}
//-------------------------------------------------------------------------
//获取提交状态
//-------------------------------------------------------------------------
public boolean getConnAutoCommit()throws Exception
{
if (conn == null)
{
getConnection();
}
return conn.getAutoCommit();
}
//-------------------------------------------------------------------------
//设置是否自动提交
//-------------------------------------------------------------------------
public void setConnAutoCommit(boolean setIt)throws Exception
{
if (conn == null)
{
getConnection();
}
conn.setAutoCommit(setIt);
}
//-------------------------------------------------------------------------
//获取一个PreparedStatement
//-------------------------------------------------------------------------
public PreparedStatement getPstmt(String sql) throws Exception
{
return conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
public String getSql()
{
return sql;
}
//-------------------------------------------------------------------------
//返回一个Connection实例
//-------------------------------------------------------------------------
public void getConnection()throws Exception
{
if (conn == null)
{
Class.forName(driver);
conn = DriverManager.getConnection(url,username,pass);
}
}
//-------------------------------------------------------------------------
//返回一个DbDao实例
//-------------------------------------------------------------------------
public static FlashDbDao instance()
{
if (op == null)
{
op = new FlashDbDao();
}
return op;
}
//-------------------------------------------------------------------------
//返回一个DbDao实例,带参数
//-------------------------------------------------------------------------
public static FlashDbDao instance(String driver,String url,String username,String pass)throws Exception
{
if (op == null)
{
op = new FlashDbDao(driver,url,username,pass);
}
return op;
}
//-------------------------------------------------------------------------
//插入一条数据
//-------------------------------------------------------------------------
public boolean insert()throws Exception
{
if (pstmt.executeUpdate() != 1)
{
return false;
}
return true;
}
//-------------------------------------------------------------------------
//返回一个含有记录的ResultSet对象(PreparedStatement生成)
//-------------------------------------------------------------------------
public ResultSet query()throws Exception
{
return pstmt.executeQuery();
}
//-------------------------------------------------------------------------
//返回一个含有记录的ResultSet对象
//-------------------------------------------------------------------------
public ResultSet query(String sql)throws Exception
{
getConnection();
Statement stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE , ResultSet.CONCUR_READ_ONLY);
return stmt.executeQuery(sql);
}
//-------------------------------------------------------------------------
//删除命令
//-------------------------------------------------------------------------
public int delete()throws Exception
{
return pstmt.executeUpdate();
}
//-------------------------------------------------------------------------
//更新一条记录
//-------------------------------------------------------------------------
public int update()throws Exception
{
return pstmt.executeUpdate();
}
//-------------------------------------------------------------------------
//返回一个含有多个bean的List
//-------------------------------------------------------------------------
public List getList(ResultBean rb) throws Exception
{
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
List ls = new ArrayList();
while(rs.next())
{
String temp = "";
for(int i = 0; i< rb.getAmount(); i++)
{
//把指针指的一行所有数据累加在一个临时字符串上
temp += String.valueOf(rs.getObject(i + 1)) + "#";
}
//创建一个新的bean
ResultBean newRb = rb.getResultBean();
//把字符串加进去进行分解
newRb.setProperty(temp);
//把bean加进list里
ls.add(newRb);
}
return ls;
}
//-------------------------------------------------------------------------
//处理只有包含一行数据的方法
//-------------------------------------------------------------------------
public void setResultBean(ResultBean rb) throws Exception
{
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
if(rs.next())
{
String temp = "";
for(int i = 0; i< rb.getAmount(); i++)
{
temp += String.valueOf(rs.getObject(i + 1)) + "#";
}
rb.setProperty(temp);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -