加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

应用于小型JSP网站的一个数据库联接类 JDBC

发布时间:2023-05-17 13:35:12 所属栏目:教程 来源:
导读:中国最大的web开发资源网站及技术社区,

这个类我本是在参加学校网页设计大赛时写的.现在稍加修改借以讨论有关jsp数据库访问优化的问题.类的内容如下,这个类在不修改任何代码的情况下适用于mssql/mysql/access数
中国最大的web开发资源网站及技术社区,
 
这个类我本是在参加学校网页设计大赛时写的.现在稍加修改借以讨论有关jsp数据库访问优化的问题.类的内容如下,这个类在不修改任何代码的情况下适用于mssql/mysql/access数据库的联接和基本操作.
 
package mxzc.web.dbctrl;
 
import java.sql.*;
 
public final class sqldbctrl
 
{/*********************************************
 
public sqldbctrl(string usr,string pwd,string cnstr,string derv)
 
public synchronized resultset selects(string sql)
 
public synchronized void updates(string sql)
 
public synchronized void adddels(string sql)
 
数据库操作的函数.
 
**********************************************/
 
private string usr;
 
private string pwd;
 
private string cnstr;
 
private string derv;
 
private bool canuse;
 
public sqldbctrl(string usr,string pwd,string cnstr,string derv)throws sqlexception
 
{
 
 this.usr=usr;
 
 this.pwd=pwd;
 
 this.cnstr=cnstr;
 
 this.derv=derv;
 
 this.canuse=true;
 
 try
 
 {
 
  class.forname(derv);
 
 }
 
 catch(classnotfoundexception e)
 
 {
 
  this.canuse=false;
 
  system.out.println("请确定"+derv+"类所对应的包已包含进程序的环境变量内.");
 
  e.tostring();
 
 }
 
}
 
public sqldbctrl()throws sqlexception
 
{
 
 //这里是一个空的构造,这个构造可能产生问题....
 
 this.canuse=false;
 
}
 
public string getusr(){return this.usr;}
 
public string getpwd(){return this.pwd;}
 
public string getcnstr(){return this.cnstr;}
 
public string getderv(){return this.derv;}
 
public void setusr(string usr){this.usr=usr;}
 
public void setpwd(string pwd){this.pwd=pwd;}
 
public void setcnstr(string cnstr){this.cnstr=cnstr;}
 
public void setderv(string derv)
 
{//属性derv对本类实例的可用性有重要意义.
 
/*
 
只有derv被赋值后,这个实例才可操作.因为这里需要加载数据库的驱动.
 
为了防止一个没有加载数据库驱动的实例被使用,我设置了一个canuse属性.
 
只有该属性为真时,这个实例才真正的可操作.
 
*/
 
 this.canuse=true;
 
 this.derv=derv;
 
 try
 
 {
 
  class.forname(derv);
 
 }
 
 catch(classnotfoundexception e)
 
 {
 
  this.canuse=false;
 
  system.out.println("请确定"+derv+"类所对应的包已包含进程序的环境变量内.");
 
  e.tostring();
 
 }
 
}
 
public bool getcanuse()
 
{//是否可进行数据库操作?在操作的数据库操作之前最好是执行一下.以防出错.
 
 return canuse;
 
}
 
public synchronized resultset selects(string sql)throws exception
 
{
 
 connection conn=null;
 
 statement stmt=null;
 
 resultset rs=null;
 
 conn=drivermanager.getconnection(cnstr,usr,pwd);
 
 stmt=conn.createstatement();
 
 rs=stmt.executequery(sql);
 
 return rs;
 
}
 
public synchronized void updates(string sql)throws exception
 
{
 
 connection conn=null;
 
 statement stmt=null;
 
 conn=drivermanager.getconnection(cnstr,usr,pwd);
 
 stmt=conn.createstatement();
 
 stmt.executeupdate(sql);
 
 if(stmt!=null)stmt.close();
 
 if(conn!=null)conn.close();
 
 stmt=null;
 
 conn=null;
 
}
 
public synchronized void adddels(string sql)throws exception
 
{
 
 connection conn=null;
 
 statement stmt=null;
 
 conn=drivermanager.getconnection(cnstr,usr,pwd);
 
 stmt=conn.createstatement();
 
 stmt.execute(sql);
 
 if(stmt!=null)stmt.close();
 
 if(conn!=null)conn.close();
 
 stmt=null;
 
 conn=null;
 
}
 
public static void main(string args[])throws exception
 
{
 
 system.out.println("");
 
 system.out.println("************************************************");
 
 system.out.println(" 包名: mxzc.web.dbctrl");
 
 system.out.println(" 类名: sqldbctrl");
 
 system.out.println(" 特性: 最终类,线程安全");
 
 system.out.println("  没有默认构造函数只能有参构造");
 
 system.out.println(" 作者: 梦醒之初/可心");
 
 system.out.println(" 版本: 1.10(update)");
 
 system.out.println("************************************************");
 
 //内部测试用sqldbctrl a=new sqldbctrl("","","jdbc:odbc:jspbbs","sun.jdbc.odbc.jdbcodbcdriver");
 
}
 
}
 
在jsp网站中的期望使用方式:
 
<jsp:usebean id="conn" scope="session" class="mxzc.web.dbctrl.sqldbctrl" >
 
<jsp:setproperty name="conn" property="usr" value="" />
 
<jsp:setproperty name="conn" property="pwd" value="" />
 
<jsp:setproperty name="conn" property="cnstr" value="jdbc:mysql://localhost:3306/kexintemp?useunicode=true&characterencoding=gbk" />
 
<jsp:setproperty name="conn" property="derv" value="org.gjt.mm.mysql.driver" />
 
</jsp:usebean>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!