package main;
import java.util.*;
import java.text.*;
import java.sql.*;
import java.io.*;
import java.lang.*;
import javax.naming.*;
/**
* 此文件为数据库的基本操作处理类
**/
public class DataBase extends Object{
Connection conn = null;
Statement stm = null;
PreparedStatement pstm = null;
ResultSet rs = null;
boolean connected = false;
/**构造函数*/
public DataBase() {}
public void showConnNUM() {
//连接池中使用
DealString ds = new DealString();
int curnum = Configuration.connMgr.getCurConns(Configuration.ConnectionPoolName);
int sumnum = Configuration.connMgr.getSumConns(Configuration.ConnectionPoolName);
int maxnum = Configuration.connMgr.getMaxConns(Configuration.ConnectionPoolName);
int isNullPool = Configuration.connMgr.getNullPool(Configuration.ConnectionPoolName);
int isOracleErr = Configuration.connMgr.getOracleErr(Configuration.ConnectionPoolName);
int jvmcount = ParentBean.count;
float jvm1 = (float)Runtime.getRuntime().totalMemory()/1024/1024;
float jvm2 = (float)Runtime.getRuntime().maxMemory()/1024/1024;
System.out.print("\r" + ds.getDateTime ( ).substring ( 11 , 19 ) + " 连接累计> "+ds.toLengthStrRight(sumnum+"",10)+"当前连接> "+ds.toLengthStrRight(curnum+"",10)+"池中连接> "+ds.toLengthStrRight(maxnum+"",10)+"池空未连接> " +ds.toLengthStrRight(isNullPool+"",10)+"DB未响应> " +ds.toLengthStrRight(isOracleErr+"",10)+"JVM垃圾回收> "+jvmcount+" ");
}
/**取得连接池*/
public void getConnPool() {
try {
if(connected){
throw new SQLException("数据库已连接,无须重连!");
}
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
/**获取连接池对象*/
Object obj = (Object) ctx.lookup("jdbc/OracleDB");
/**类型转换*/
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
conn = ds.getConnection();
/**测试连接计数*/
connected = true;
showConnNUM();
}
catch(NamingException e){System.out.println("从数据池取得数据库连接时出错;\r\n错误为:"+e);}
catch(SQLException e){System.out.println("从数据池取得数据库连接时出错;\r\n错误为:"+e);}
}
/**创建我的连接池*/
public boolean getMyConnPool(){
conn = Configuration.connMgr.getConnection(Configuration.ConnectionPoolName);
showConnNUM();
if(conn == null){
return false;
}
else{
return true;
}
}
/**释放我的连接池*/
public boolean releaseMyConnPool(){
boolean b;
if ( conn !=null ){
b = true;
}
else{
b = false;
}
Configuration.connMgr.freeConnection(Configuration.ConnectionPoolName, conn);
conn = null ;
showConnNUM();
return b;
}
/*
public void getConnDataSourse(){
try{
OracleDataSource ods = new OracleDataSource();
ods.setDriverType("thin");
ods.setServerName("10.0.0.94");
ods.setNetworkProtocol("tcp");
ods.setDatabaseName("hg");
ods.setPortNumber(1521);
ods.setUser("oaadminuser");
ods.setPassword("lancom4454");
// 从数据源中获取数据库连接
conn = ods.getConnection();
/**测试连接计数
ParentBean.curnum++;
ParentBean.sumnum++;
}
catch(SQLException e){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+e);}
}
public void getConnJNDI(){
Context ctx = null;
try{
//建立上下文环境
Hashtable env = new Hashtable (5);
env.put (Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");
env.put (Context.PROVIDER_URL, "file:JNDI");
ctx = new InitialContext(env);
//从JNDI取得连接
OracleDataSource ods1 = (OracleDataSource) ctx.lookup ("jdbc/chidb");
if(ods1==null){
//建立数据源绑定
OracleDataSource ods = new OracleDataSource();
ods.setDriverType("thin");
ods.setServerName("10.0.0.94");
ods.setNetworkProtocol("tcp");
ods.setDatabaseName("hg");
ods.setPortNumber(1521);
ods.setUser("oaadminuser");
ods.setPassword("lancom4454");
ctx.bind ("jdbc/chidb",ods);
}
ods1 = (OracleDataSource) ctx.lookup ("jdbc/chidb");
conn = ods1.getConnection();
}
catch(SQLException e){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+e);}
catch (NamingException ne){
ne.printStackTrace();
}
}
*/
/**生成Oracle SQLServer等的连接*/
public void createConn(String drv,String url,String usr,String pwd){
try{
if(connected){
throw new SQLException("数据库已连接,无须重连!");
}
Class.forName(drv).newInstance();
conn = DriverManager.getConnection(url,usr,pwd);
connected = true;
/**测试连接计数*/
showConnNUM();
}
catch(ClassNotFoundException ec){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+ec);}
catch(SQLException e){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+e);}
catch(Exception et){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+et);}
}
/**生成Access连接*/
public void createConn(String drv,String url){
try{
if(connected){
throw new Exception("数据库已连接,无须重连!");
}
Class.forName(drv).newInstance();
conn = DriverManager.getConnection(url);
connected = true;
/**测试连接计数*/
showConnNUM();
}
catch(ClassNotFoundException ec){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+ec);}
catch(SQLException e){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+e);}
catch(Exception et){System.out.println("从自身建立数据库连接时出错;\r\n错误为:"+et);}
}
/**释放数据库连接*/
public void releaseConn(){
try{
if(!connected){
//throw new SQLException("数据库未连接!");
}
if(conn!=null){
conn.close();
connected = false;
/**测试连接计数*/
showConnNUM();
}
}
catch(SQLException e){System.out.println("关闭数据库连接时出错;\r\n错误为:"+e);}
}
/**查询记录*/
public ResultSet QuerySQL(String sql){
ResultSet rs = null;
try{
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
}catch(SQLException sqle){
System.out.println("执行DataBase::QuerySQL(String)调用SQL语句 "+sql+" 时出错;\r\n错误为:"+sqle);
if(pstm!=null)
try{pstm.close();}catch(Exception e){System.out.println("执行DataBase::QuerySQL(String)试图关闭错误的声明时出错;\r\n错误为:"+e);}
}
return rs;
}
/**执行增删改的语句*/
public int ExecuteSQL(String sql){
try{
pstm = conn.prepareStatement(sql);
pstm.executeUpdate();
conn.commit();
}
catch(SQLException sqle){
//System.out.println("执行DataBase::ExecuteSQL(String)调用SQL语句 "+sql+" 时出错;\r\n错误为:"+sqle);
return sqle.getErrorCode();
}
finally{
try{
pstm.close();
}catch(SQLException sqle){System.out.println("执行DataBase::ExecuteSQL(String)调用SQL语句 "+sql+" 时出错;\r\n错误为:"+sqle);}
}
return 0;
}
/**产生唯一编号*/
public int makeID(String table,String field1,String field2,String value1,boolean type1)
{
int out = -1;
String sql = "";
try
{
//只有唯一主键field1
sql = "select "+field1+" as ID from "+table+" order by "+field1;
//有两个主键field1、field2
if(!value1.equals(""))//当第一个字段不空时,作为条件查询第二个字段
{
sql = "select "+field2+" as ID from "+table+" where "+field1+"="+value1+" order by "+field2;
if(!type1) //是字符串时 将type1设为false
sql = "select "+field2+" as ID from "+table+" where "+field1+"='"+value1+"' order by "+field2;
}
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
int t1 = 1;
int t2 = 2;
if(rs.next()) //有记录
{
t1 = rs.getInt("ID");
out = t1;
boolean bool = false;
while(rs.next()) //不止一条纪录
{
bool = true;
t2 = rs.getInt("ID");
if((t2-t1)>1)break; //如果t2与t1相差大于1,则跳出去,新编号为t1++(见后面**)
t1 = t2; //否则将t2赋给t1
}
if(!bool) //如果只有一条纪录
{
if(t1>1)t1 = 1; //如果已有纪录的ID号大于1,则新编号设为1
e
没有合适的资源?快使用搜索试试~ 我知道了~
Jsp树实现(无刷新交互).rar
共36个文件
gif:20个
java:12个
jsp:2个
需积分: 4 48 下载量 29 浏览量
2008-12-10
17:57:40
上传
评论 1
收藏 50KB RAR 举报
温馨提示
通过对开源 dtree 的改动,实现无刷新页面传递数据
资源推荐
资源详情
资源评论
收起资源包目录
Jsp树实现.rar (36个子文件)
Jsp树实现
selectbm.jsp 1KB
dtree
dtree.css 795B
img
nolines_plus.gif 870B
plusbottom.gif 88B
plus.gif 89B
empty.gif 62B
line.gif 66B
imgfolder.gif 622B
joinbottom.gif 66B
trash.gif 1KB
folderopen.gif 363B
globe.gif 1KB
minus.gif 86B
minusbottom.gif 85B
base.gif 380B
musicfolder.gif 633B
join.gif 69B
question.gif 1KB
nolines_minus.gif 861B
page.gif 1014B
cd.gif 239B
folder.gif 150B
dtree.js 12KB
BmBean.java 2KB
main
ParentBean.java 15KB
InitServlet.java 886B
DealString.java 9KB
Configuration.java 1015B
DBConnectionManager.java 11KB
DataBase.java 53KB
DealFile.java 7KB
ConfigReader.java 3KB
MD5.java 11KB
OpenWordFileTest.java 438B
MD5Bean.java 15KB
user_edit.jsp 6KB
共 36 条
- 1
资源评论
ZTom
- 粉丝: 4
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功