⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flashdbdao.java

📁 简易java框架开源论坛系统源码easyjf_bbs0.1.rar
💻 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 + -