问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JSPWeb开发中一个关于数据库操作类该这么写,类中要带有查询,增删改,以及关闭数据库操作方法,请高手指

发布网友 发布时间:2022-04-10 21:37

我来回答

3个回答

热心网友 时间:2022-04-10 23:06

package com.oa..impl; import java.sql.Connection; </SPAN></li>import java.sql.PreparedStatement; </SPAN></li>import java.sql.ResultSet; </SPAN></li>import java.sql.SQLException; </SPAN></li>import java.sql.Statement; </SPAN></li>import java.util.List; </SPAN></li>import java.util.Map; </SPAN></li> import org.apache.commons.logging.Log; </SPAN></li>import org.apache.commons.logging.LogFactory; </SPAN></li> import com.oa.core.DynaForm; </SPAN></li>import com.oa..Dao; </SPAN></li>import com.oa.jdbc.ConnectionFactory; </SPAN></li>import com.oa.jdbc.DaoAccessException; </SPAN></li>import com.oa.jdbc.DybaBean; </SPAN></li>import com.oa.jdbc.JdbcPage; </SPAN></li>import com.oa.jdbc.Page; </SPAN></li>import com.oa.jdbc.RowsDynaClass; </SPAN></li> /** </SPAN></li> * 基类DAO,实现一些基本共有方法 * * @author Gao_wx Mar 26, 2008 */ public class BaseDao implements Dao { </SPAN></li> protected Log logger = LogFactory.getLog(BaseDao.class); </SPAN></li> // 获取数据库链接 </SPAN></li> protected Connection getConnection() { </SPAN></li> return ConnectionFactory.getConnection(); </SPAN></li> } // 在此链接上,根据sql语句获取List </SPAN></li> protected List<DybaBean> getList(Connection conn, String sql) </SPAN></li> throws DaoAccessException { </SPAN></li> try { </SPAN></li> Statement st = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = st.executeQuery(sql); return getList(rs); </SPAN></li> } catch (SQLException e) { </SPAN></li> throw new DaoAccessException(sql, e); </SPAN></li> } } // 根据Result获取List </SPAN></li> protected List<DybaBean> getList(ResultSet rs) throws SQLException { </SPAN></li> RowsDynaClass rsdc = new RowsDynaClass(rs); </SPAN></li> return rsdc.getRows(); </SPAN></li> } // 根据sql语句获取List </SPAN></li> protected List<DybaBean> getList(String sql) throws DaoAccessException { </SPAN></li> Connection conn = getConnection(); return getList(conn, sql); </SPAN></li> } // 在此连接上,根据sql语句,id加载一条记录 </SPAN></li> protected DybaBean loadById(Connection conn, String sql, int id) </SPAN></li> throws DaoAccessException { </SPAN></li> try { </SPAN></li> PreparedStatement pst = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); pst.setInt(1, id); </SPAN></li> ResultSet rs = pst.executeQuery(); List list = getList(rs); if (list.size() > 1) { </SPAN></li> logger.warn("加载了2条以上的记录,请检查sql:" + sql); </SPAN></li> } if (list.size() == 0) { </SPAN></li> logger.warn("数据库没有此记录!"); </SPAN></li> return null; </SPAN></li> } else { </SPAN></li> return (DybaBean) list.get(0); </SPAN></li> } } catch (SQLException e) { </SPAN></li> throw new DaoAccessException(sql, e); </SPAN></li> } } // 根据sql语句,id,加载一条记录 </SPAN></li> protected DybaBean loadById(String sql, int id) throws DaoAccessException { </SPAN></li> Connection conn = getConnection(); return loadById(conn, sql, id); </SPAN></li> } // 在此连接上,根据Sql和id删除一条记录,返回影响行数 </SPAN></li> protected int deleteById(Connection conn, String sql, int id) </SPAN></li> throws SQLException { </SPAN></li> PreparedStatement pst = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); pst.setInt(1, id); </SPAN></li> int del = pst.executeUpdate(); </SPAN></li> return del; </SPAN></li> } // 根据sql语句,id删除一条记录 </SPAN></li> protected int deleteById(String sql, int id) throws DaoAccessException { </SPAN></li> Connection conn = getConnection(); try { </SPAN></li> int del = deleteById(conn, sql, id); </SPAN></li> return del; </SPAN></li> } catch (SQLException e) { </SPAN></li> throw new DaoAccessException(sql, e); </SPAN></li> } } protected Page getPage(DynaForm form, String sql) throws DaoAccessException { </SPAN></li> Connection conn = getConnection(); Page page = getPage(conn, form, sql); return page; </SPAN></li> } // 获取分页对象 </SPAN></li> protected Page getPage(Connection conn, DynaForm form, String sql) </SPAN></li> throws DaoAccessException { </SPAN></li> int p = form.getInt("p"); </SPAN></li> if (p < 1) { </SPAN></li> p = 1; </SPAN></li> } int size = form.getInt("size"); </SPAN></li> if (size < 10) { </SPAN></li> size = 10; </SPAN></li> } Page page; try { </SPAN></li> page = new JdbcPage(conn, sql, p, size); </SPAN></li> } catch (SQLException e) { </SPAN></li> throw new DaoAccessException(sql, e); </SPAN></li> } return page; </SPAN></li> } }

热心网友 时间:2022-04-11 00:24

package com.;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class dbsql {
protected static final String drive = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
protected static final String url = "jdbc:sqlserver://localhost:1433;DatabaseName=这里写你要连接的数据库文件名" ;//连接字符串
protected static final String user = "sa";
protected static final String pass = "123";

// 操作数据库
protected static Connection conn = null;//打开和关闭数据库
protected static PreparedStatement ps = null;
protected static ResultSet rs = null;

/**
* 打开连接
*
* @return
*/
public Connection open() {
try {
Class.forName(drive);
conn = DriverManager.getConnection(url, user, pass);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}

/**
* 关闭连接
*/
public void close() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 增删改操作都调用这个方法
* 里面的代码基本 跟查询的是一样的 只是 后面 执行的不同
*/

public int execute(String sql, Object[] obj) {
int num = 0;
try {
conn = open(); // 打开数据库连接
ps = conn.prepareStatement(sql);
if (null != obj) {
for (int i = 0; i < obj.length; i++) {
ps.setObject(i + 1, obj[i]);
}
}
//执行数据库的 增加 删除 修改的
num = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(); //关闭数据库连接
}
return num;
}

/**
* 查询操作
*/
public void executeQuerySQL(String sql,Object[] obj){
try {
conn=open(); //调用我上面些的 打开数据量连接
ps=conn.prepareStatement(sql); //接收子类传进来的sql语句并且执行
if(null!=obj){//obj 是查询条件
//循环 obj
for (int i = 0; i < obj.length; i++) {
//ps.setObject 是接收参数的

ps.setObject(i+1, obj[i]);
}
}
//这个是执行 数据库查询的
rs=ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("查询数据失败");
}
}
}
望采纳

热心网友 时间:2022-04-11 01:59

package s2jsp.lg..impl;
import java.sql.*;public class BaseDao {
public final static String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public final static String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs";
public final static String DBNAME = "sa";
public final static String DBPASS = "sa";

public BaseDao() throws ClassNotFoundException, SQLException{
getCon();
}

Connection con = null;
PreparedStatement ps = null;
ResultSet res = null;

private void getCon() throws ClassNotFoundException, SQLException{
Class.forName(DRIVER);
con = DriverManager.getConnection(URL,DBNAME,DBPASS);
}

public int execUpdate(String sql,Object[] obj){
int num = 0;
try {
ps = con.prepareStatement(sql);
if(obj!=null){
for(int i=0;i<obj.length;i++){
ps.setObject(i+1, obj[i]);
}
}
num = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
closePstatement();
closeCon();
}
return num;
}

public ResultSet execQuery(String sql,Object[] obj){
ResultSet res = null;
try {
ps = con.prepareStatement(sql);
if(obj!=null){
for(int i=0;i<obj.length;i++){
ps.setObject(i+1, obj[i]);
}
}
res = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeResult();
closePstatement();
closeCon();
}
return res;
}

public void closeCon(){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public void closePstatement(){
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public void closeResult(){
if(res!=null){
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? AEL型换热器 在( )中成长作文 600字 相机中AE L和 AFL是什么意思 ae-l和af-l是什么意思? “独立生活,快乐成长”作文500字 以独立为话题的作文 成长中,我学会了独立的记叙文 急!以成长独立为主题写一篇中学生作文 以《成长,也需要独立》写作文 苹果8p原装的充电器充不进电是咋回事,如何处理? 苹果手机红光过滤功能怎么开 有没有在家能挣钱的工作? 是真的有在家赚钱的方法吗? 脑袋上有虱子怎么办? 脑袋有虱子怎么办 如果头上长虱子怎么办 户户通多少钱内蒙古 可以在家挣钱的活有吗? 我国现阶段银行分为哪几类 海信电视智能音箱使用时要注意哪些? 关于尼康单反AF-L和AE-L求助 AE-S AE-L有什么区别 什么是AE 和AF D90快门释放按钮AE-L是选择开启还是关闭呢?各有什么优劣 AE-L/AF-L锁定曝光与半按快门释放按钮锁定曝光 哪一个优先 尼康P7100的AE-L/AF-L键是什么意思?怎么用啊? 安卓手机号码生成器 尼康810取景器里出现的AE-L怎么取消? 我才买的新手机,上面显示的是5G显示字样,是不是意味着我的手机套餐直接... 我的5G手机上显示了“5G”,但我的套餐是4G的,我现在使用的是5G网络么? 读后感 (纯读后感,不要有一点点介绍文章的)谢了!加倍奖励哦!!! 读者中一篇文章读后感 我曾侍候過英國國王怎么样 如何评价赫拉巴尔的语言风格? 哪些小说,是你最不舍得完结的?为什么? 甲亢血液指标FT4高,TSH低 TSH低超出正常值,FT3和FT4偏高在正常值范围内,属于甲状腺的什么病?怎么治疗?注意什么? ft3 ft4偏高tsh偏低 FT4,T4偏高,TSH偏低是什么原因 甲减上个月检查甲功3项正常这个月检查tsh低于正常值ft4高是怎么回事啊