四个源文件,一个演示文件
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(""");
break;
case 39: // '/''
stringbuffer.append("'");
break;
case 124: // '|'
stringbuffer.append("");
break;
case '&':
stringbuffer.append("&");
break;
case '<':
stringbuffer.append("<");
break;
case '>':
stringbuffer.append(">");
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