db重复使用模块

四个源文件,一个演示文件

DBConfig.property(不同数据库表,修改此文件进行连接就可以了)

#梦想年华JSP版新闻发布系统数据库配置文件
#请更改以下信息,以便正确连接数据库

#数据库类型:0为Access,1为MYSQL,2为MSSQL,3为oracle,4为real oracle请改成您用的数据库。默认为1。
DBType=2

#Access 数据库连接信息
#Access 驱动程序
AccessDriver=sun.jdbc.odbc.JdbcOdbcDriver

#Access 连接字符串。
AccessURL=jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=

#Access 数据库名
AccessPath=E:/Tomcat-5.5.4/webapps/news/WEB-INF/DreamNews.mdb


#MySQL 数据库连接信息
#MySQL 数据库驱动程序
MySQLDriver=org.gjt.mm.mysql.Driver

#MySQL数据库连接字符串。
#DreamTimeNews 为数据库名,user 为登录用户名,password 为登录密码。请自行更改。
MySQLURL=jdbc:mysql://localhost:3306/DreamTimeNews?user=dreamnews&password=dreamnews&useUnicode=true&characterEncoding=GBK


#SQL Server 数据库连接信息
#SQL Server 驱动程序
SQLDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver

#SQL Server 数据库连接字符串
#DreamTimeNews 为数据库名,user 为登录用户名,password 为登录密码。请自行更改。
SQLURL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=5507;user=pp;password=911


#Oracle数据库连接信息
OracleDriver=oracle.jdbc.driver.OracleDriver
OracleURL=jdbc:oracle:thin:@192.168.99.222:1521:gdsw
datasource.username=zhjh_web
datasource.password=zhjh_web

DBConnection.java(不变)


package com.pp.db;   //指定类所在的包
import java.sql.*;      //导入数据库操作的类
import java.util.*;
import java.io.*;

public class DBConnection     
{

    private String FileName;   //配置文件名
    private int DBType;     //数据库类型
  
    private Connection conn;   //连接对象
 //private Statement stmt;    //语句对象
 //private ResultSet rs;    //结果集对象
 
    private String AccessDriver;  //保存Access驱动程序
    private String AccessURL;    //保存Access连接字符串 
    private String AccessPath;    //保存Access数据库的路径 
   
    private String MySqlDriver;   //MYSQL Server驱动程序
    private String MySqlURL;    //MYSQL Server连接字符串
       
    private String SqlDriver;   //SQL Server驱动程序
    private String SqlURL;     //SQL Server连接字符串
   
    private String OracleDriver;  //Oracle驱动程序
    private String OracleURL;    //Oracle连接字符串
 
   
   
    public DBConnection()
    {
     conn = null;
    }

 public  Connection getConn()
 {

  DBType= new Function().StrToInt(getPara("DBType"));
 
  switch(DBType)
  {
   case 0:return(getConnToAccess());
   case 1:return(getConnToMySql());
   case 2:return(getConnToSql());
   case 3:return(getConnToOracle());
   default:return null;
  } 
 }
 
 
 public String getPara(String ParaName)
 {
  FileName="DBConfig.property";
  Properties prop= new Properties();
  try
  {
   InputStream is = getClass().getResourceAsStream(FileName);
   prop.load(is);
   if(is!=null) is.close();
  }
  catch(Exception e) {
   return "Error!";
  }
  return prop.getProperty(ParaName);
 }
 
 
 
    public Connection getConnToAccess()
    {
  try{
      AccessDriver = getPara("AccessDriver");  
      AccessURL = getPara("AccessURL");
      AccessPath = getPara("AccessPath");
   AccessURL=AccessURL+AccessPath;
      Class.forName(AccessDriver).newInstance();
      conn = DriverManager.getConnection(AccessURL);
      }catch(Exception e){
       //e.printStackTrace();
       //return "操作数据库出错,请仔细检查" ;
       //System.err.println(e.getMessage());
      }
     return conn;
    }
    
    
    public Connection getConnToMySql()
    {
  try{
    MySqlDriver = getPara("MySQLDriver"); 
      MySqlURL = getPara("MySQLURL");
      Class.forName(MySqlDriver).newInstance();
      conn = DriverManager.getConnection(MySqlURL);
      }catch(Exception e){
       //e.printStackTrace();
       //return "操作数据库出错,请仔细检查" ;
       //System.err.println(e.getMessage());
      }
     return conn;
    }
   
 
 public Connection getConnToSql()
 {      
      try{
       SqlDriver = getPara("SQLDriver");
         SqlURL = getPara("SQLURL");
      Class.forName(SqlDriver).newInstance();
      conn = DriverManager.getConnection(SqlURL);
      }catch(Exception e){
       e.printStackTrace();
       //return "操作数据库出错,请仔细检查" ;
       //System.err.println(e.getMessage());
      }
     return conn;
    }
   
 
    public Connection getConnToOracle()
    {      
  try{
    OracleDriver = getPara("OracleDriver"); 
      OracleURL = getPara("OracleURL");
      String userid = getPara("datasource.username");
      String password = getPara("datasource.password");
      Class.forName(OracleDriver).newInstance();
      conn = DriverManager.getConnection(OracleURL, userid, password);
      }catch(Exception e){
       e.printStackTrace();
       //return "操作数据库出错,请仔细检查" ;
       //System.err.println(e.getMessage());
      }
    return conn;
    }
 
     public Connection getConnToOracle2()
    {      
  try{
    OracleDriver = getPara("OracleDriver2"); 
      OracleURL = getPara("OracleURL2");
      String userid = getPara("datasource.username2");
      String password = getPara("datasource.password2");
      Class.forName(OracleDriver).newInstance();
      conn = DriverManager.getConnection(OracleURL, userid, password);
      }catch(Exception e){
       e.printStackTrace();
       //return "操作数据库出错,请仔细检查" ;
       //System.err.println(e.getMessage());
      }
    return conn;
    }  
     
    public Connection getConnToOracle3()
    {      
  try{
    OracleDriver = getPara("OracleDriver3"); 
      OracleURL = getPara("OracleURL3");
      String userid = getPara("datasource.username3");
      String password = getPara("datasource.password3");
      Class.forName(OracleDriver).newInstance();
      conn = DriverManager.getConnection(OracleURL, userid, password);
      }catch(Exception e){
       e.printStackTrace();
       //return "操作数据库出错,请仔细检查" ;
       //System.err.println(e.getMessage());
      }
    return conn;
    } 
   //关闭数据库连接
   /* public void Close()
    {
        try{
            Conn.close();
        }catch(SQLException sqlexception){
            sqlexception.printStackTrace();
        }
    }*/
   
   
    public static void main(String[] args)
 { 
  DBConnection DBConn = new DBConnection();
  try
  {
   Connection Conn = DBConn.getConn(); 
   ResultSet rs = null;
   Statement stmt = Conn.createStatement(1004,1007);
      String Sql = "select * from Admin where AdminName='dream' and AdminPwd='dream'";
      rs = stmt.executeQuery(Sql);
      rs.next();
      if (!rs.isAfterLast())
   {
    System.out.println(rs.getString("AdminName")+"登录成功!");
   }
   else
   {
    System.out.println("登录失败!");
   }
  }
  catch(SQLException e)
  {
   System.out.println(e.getMessage().toString());
  }
 }
   
}

DBOperation.java(我要用)
package com.pp.db;

import java.sql.*;


public class DBOperation {
 private DBConnection DBConn = null;
 private Connection con=null;
 public DBOperation() {

  try {
   DBConn = new DBConnection();
  } catch (Exception ex) {
   System.out.println("创建数据库对象失败!");
  }
 }

 // 创建数据库连接
 public boolean creatConnection() {
  try {
    con = DBConn.getConn();
   con.setAutoCommit(true);

  } catch (SQLException e) {
   System.out.println(e.getMessage());
   System.out.println("creatConnectionError!");
  }
  return true;
 }

 // 对数据库的增加、修改和删除的操作
 public boolean executeUpdate(String sql) {

  if (con == null) {
   creatConnection();
  }
  try {
   
   Statement stmt = con.createStatement(1004,1007);
   int iCount = stmt.executeUpdate(sql);
   System.out.println("操作成功,所影响的记录数为" + String.valueOf(iCount));
   return true;
  } catch (SQLException e) {
   System.out.println(e.getMessage());
   return false;
  }

 }

 // 对数据库的查询操作
 public ResultSet executeQuery(String sql) {
  ResultSet rs;
  try {
   if (con == null) {
    creatConnection();
   }
   Statement stmt = con.createStatement(1004,1007);
   try {
    rs = stmt.executeQuery(sql);
   } catch (SQLException e) {
    System.out.println(e.getMessage());
    return null;
   }
  } catch (SQLException e) {
   System.out.println(e.getMessage());
   System.out.println("executeQueryError!");
   return null;
  }
  return rs;
 }

 // 关闭数据库的操作
 public void closeConnection() {
  if (con != null) {
   try {
    con.close();
   } catch (SQLException e) {
    e.printStackTrace(); // To change body of catch statement use
    // File | Settings | File Templates.
    System.out.println("Failed to close connection!");
   } finally {
    con = null;
   }
  }
 }

}
Function.java(其它java中用到,不用看此代码)

 

package com.pp.db;   //指定类所在的包

import java.sql.*;
import java.util.Calendar;
import com.pp.db.DBConnection;
public class Function     
{       
 DBConnection DBConn = new DBConnection();
 public static int AdminUserListNum;
 public static int AdminLogListNum;
 public static int AdminNewsListNum;
 
 public static int HotNewsNum;
 public static int TopNewsNum;
 public static int TopImgNum;
 public static int HeadNewsNum;
 public static int ClassNewsNum;
 public static int ClassImgNum;
 public static int SpecNum;
 public static int SpecNewsNum;
 
 public static int BHotNewsNum;
 public static int BTopNewsNum;
 public static int BTopImgNum;
 public static int BHeadNewsNum;
 public static int BClassNewsNum;
 public static int BClassImgNum;
 public static int BSpecNum;
 public static int BSpecNewsNum;
 
 //专题参数
 public static int ListSpecNum;
 
 public static int ListNewsNum;
 public static int SearchNewsNum;
 
 
 //网站全局信息
 public static String DreamNewsTitle;
 public static String DreamNewsCopyRight;
 public static String DreamNewsEmail;

 public Function()
 {
 
 }
  
 
 public String getDateStr()
 {
  Calendar c = Calendar.getInstance();
  String str = c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH)+1) + "-" + c.get(Calendar.DAY_OF_MONTH) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);
  return str;
 }
 
 /*********************************************************
 * 函数名:CheckReplace
 * 作  用:转化SQL特殊字符串
 * 参  数:s: 字符串型,待转化的字符
 * 返回值:转化以后的字符串
 * 调 用:String s2 = CheckReplace(s1);
 ***********************************************************/ 
 public String CheckReplace(String s)
 {
     try
     {
      if(s == null || s.equals("")) return "";
   else
   {
    StringBuffer stringbuffer = new StringBuffer();
    for(int i = 0; i < s.length(); i++)
    {
     char c = s.charAt(i);
     switch(c)
     {       
           
     case 34: // '"'
      stringbuffer.append("&quot;");
      break;
  
     case 39: // '/''         
      stringbuffer.append("&#039;");
      break;
 
     case 124: // '|'
      stringbuffer.append("");
      break;
     
     case '&':
      stringbuffer.append("&amp;");
      break;
     
     case '<':
      stringbuffer.append("&lt;");
      break;
     
     case '>':
      stringbuffer.append("&gt;");
      break;
     
     default:
      stringbuffer.append(c);
      break;
     }
    }
    return stringbuffer.toString().trim();  //返回转化以后的字符串
     }
    }catch(Exception e){
     return "";
    }
 }
  
  
 
 
 /*********************************************************
 * 函数名:CheckDate
 * 作  用:检测数据是否为空
 * 参  数:数组 s1: 检测的变量,s2,变量的名称
 * 返回值:转化以后的字符串
 ***********************************************************/ 
 public String CheckDate(String [] s1,String [] s2)
 {
     boolean OK = true;
     StringBuffer sb = new StringBuffer();
     try
     {
      for(int i = 0; i < s1.length; i++)
      {
       if(s1[i] == null || s1[i].equals("") || s1[i].equals(" "))
    {     
     sb.append("<li> [ " + s2[i] + " ] 不能为空!");            
     OK = false;
      }
     }
     if (OK) return "Yes";
     else return sb.toString().trim();
   }catch(Exception e) { return "操作失败!";}
 }

 
 /*********************************************************
 * 函数名:getStrCN
 * 作  用:转化字符编码
 * 参  数:数组 s1:等转化的字符
 * 返回值:转化以后的字符串
 ***********************************************************/
 public String getStrCN(String s)
    {
     if(s == null) s = "";
     try
     {
      byte abyte0[] = s.getBytes("GBK");
      s = new String(abyte0, "GBK");
     }catch(Exception e) {s="";}
     return s;
    }
 
 
   /***********************************************************
 * 函数名:StrToInt
 * 作  用:把字符串转为整型
 * 参  数:s: 字符串型
 * 返回值:整型
 ***********************************************************/ 
 public int StrToInt(String s)
 {
   try
   {
  int i = Integer.parseInt(CheckReplace(s));
  return i;  //返回转化以后的字符串
   }catch(Exception e)
   {
    return 0;
   }
    
 }
 
   /***************************************************************
 * 函数名:StringToBoolean
 * 作  用:头部信息显示
 * 参  数:AdminLogin: 布尔型,用户是否登录标识
 * 返回值:字符串
 * 调 用:out.println(BottomInfo());
 *****************************************************************/ 
 public boolean StringToBoolean(String s)
 {
  if (s != null && s.equals("Yes")) return true;
  else return false;
 }


 /**********************************************************
 * 函数名:Page
 * 作  用:分页显示
 * 参  数:sPage: 字符型,当前页面文件路径
 *         如果有参数则要传递的参数,多参数传递请用"&"连接
 *         页面地址后面请加上"?"
 *    可用 sPage = request.getServletPath()得到
 * 返回值:显示分页的字符串
 * 调 用:out.println(Page(sPage);
 ************************************************************/
 public String Page(String sPage,ResultSet rs,int intPage,int intPageSize)
 {
  String s=null;
  
  //以下是分面所用的变量申明
  int intRowCount;     //记录总数
  int intPageCount;     //总页数
  int i=0;
  try{
   
   rs.last();
   //获取记录总数
   intRowCount = rs.getRow();
   
   //记算总页数
   if(intRowCount % intPageSize == 0) intPageCount = intRowCount/intPageSize;
   else intPageCount = (int)Math.floor(intRowCount/intPageSize)+1;
   if(intPageCount == 0) intPageCount = 1;
   
   if(intPage < 1) intPage = 1;
   if(intPage > intPageCount) intPage = intPageCount;
  
   if(intRowCount>intPageSize)
   {
    s  = "<table width=/"90%/"  border=/"0/" align=/"center/" cellpadding=/"2/" cellspacing=/"0/"><tr>";
    s += "<td width=/"80%/" height=/"30/" class=/"chinese/"><span class=/"chinese/">";
    s += "当前第"+intPage+"页/共"+ intPageCount+"页,共"+intRowCount+"条记录,"+intPageSize+"条/页";
    
    int showye = intPageCount;
    if(showye>10) showye=10;
    for(i=1;i<=showye;i++)
    {
     if(i==intPage) s += " " + i + " ";
     else s += " <a href=/""+sPage+"intPage="+i+"/">" +i+"</a> ";
    }
    
    s += "</span></td>";
    s += "<td width=/"20%/">";
    s += "<table width=/"100%/" border=/"0/">";
    s += "<tr><td><div align=/"right/"><span class=/"chinese/">";
    s += "<select name=/"ipage/" class=/"chinese/" onChange=/"MM_jumpMenu('self',this,0)/">";
    s += "<option value=/"/" selected>请选择</option>";
    
    for(i=1;i<=intPageCount;i++)
    {
     String sSelect = (i==intPage)?"SELECTED":"";
     s += "<option value=/"" + sPage + "intPage=" + i + "/"" + sSelect + ">第" + i + "页</option>";
    }
    
    s += "</select></span></div>";
    s += "</td></tr></table>";
    s += "</td></tr></table>";
    return s;
   }
   else return "";
  }catch(Exception e){
   e.printStackTrace();
   return "分页出错!";//+ e.getMessage(); 
  }
 }
 
 
 /**********************************************************
 * 函数名:OutError
 * 作  用:输出错误信息
 * 参  数:错误信息
 * 返回值:字符串
 ************************************************************/
 public String OutError(String s)
    {
    try{
  StringBuffer sb = new StringBuffer();  
  sb.append("<br><br><table width=/"60%/"  border=/"0/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/">/r/n");
  sb.append("<tr><td align=/"center/" valign=/"top/">/r/n");
  sb.append("<table width=/"90%/"  border=/"1/" align=/"center/" cellpadding=/"6/" cellspacing=/"1/">/r/n");
  sb.append("<tr class=/"chinese/" height=/"25/"><td height=/"27/" background=/"images/bg.gif/" class=/"info/">/r/n");
  sb.append("<div align=/"center/" class=/"title/">提示信息</div></td></tr>/r/n");
  sb.append("<tr class=/"chinese/" height=/"25/"><td><table cellspacing=/"4/" cellpadding=/"1/">/r/n");
  sb.append("<tr><td width=/"511/" height=/"80/" align=/"middle/" valign=/"top/">/r/n");
  //sb.append("<p align=/"left/"><span class=/"info1/">操作出错:</span></p><div align=/"left/" class=/"info1/">");
  sb.append( s + "</div></td></tr></table></td></tr>/r/n");
  sb.append("<tr><td background=/"images/bg.gif/" height=/"20/" valign=/"middle/"><div align=/"center/" class=/"chinese/">/r/n");
  sb.append("<a href=/"#/" onClick=/"javascript:history.go(-1)/">返回</a></div></td></tr></table></td></tr></table><br><br>/r/n");
  return sb.toString();
  }catch(Exception e){
   //e.printStackTrace();
   //System.out.print(e.getMessage());
      return "操作出错!";
     } 
  
 }
 
}

使用方法

使用DBOperation.java

  try{
      db.creatConnection();
       String sql="select * from liuyan";
     ResultSet rs=db.executeQuery(sql);
      while(rs.next()){out.println(rs.getString(2));}
     db.closeConnection();
     rs.close(); 
   }
   catch(Exception e){System.out.println(e.toString());
   <%@ page language="java"  contentType="text/html; charset=GB2312" import="java.sql.*"%>
<jsp:useBean id="db" class="com.pp.db.DBOperation"></jsp:useBean>
http://download.youkuaiyun.com/source/358973

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值