社区
Web 开发
帖子详情
jsp与mysql问题
symouse
2001-04-29 09:02:00
小弟在用jsp对数据库操作时,当把游标设为可自由移动时,则查询操作时,java崩溃,说是地址冲突,不知是jodbc的问题还是mysql的问题,望各位大侠指教
...全文
99
5
打赏
收藏
jsp与mysql问题
小弟在用jsp对数据库操作时,当把游标设为可自由移动时,则查询操作时,java崩溃,说是地址冲突,不知是jodbc的问题还是mysql的问题,望各位大侠指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
symouse
2001-05-30
打赏
举报
回复
解决了,是MYSQL的ODBC驱动有问题,劝大家不要用。
symouse
2001-04-30
打赏
举报
回复
如果大家没什么办法,我想我只能这样了:
for (int j=0;j<off;j++){
myrs.next();
}
罪过,我浪费了N个时钟周期。
symouse
2001-04-30
打赏
举报
回复
代码如下:
//**********************************************************************************//
//类名:DBManager //
//功能:处理用户对数据库的查询或更新请求,对更新情求返回更新记录条数,对查询请求返回查询结果集 //
//完成日:01.04.25 //
//备注: //
//**********************************************************************************//
package com.nets.mouse.database;
import java.sql.*;
import java.util.*;
/** 处理用户的数据库请求
*@author LIWENHAO
*@version 1.0
*/
public class DBManager {
private int initCons = 15; //初始连接数
private int increment = 5; //每次增加连接数
private String dbURL = "jdbc:odbc:FUDB"; //数据库地址
private String user = "root"; //用户名
private String password = "symouse";//密码
private String drvClassName = "sun.jdbc.odbc.JdbcOdbcDriver";//数据库驱动
private MouseConPool pool = null;
//*****************************************************************************//
/**初始化一个连接池 */
public DBManager(){
try {
pool = new MouseConPool(dbURL,user,password,drvClassName,initCons,increment);
} catch(Exception e) {}
}
//*****************************************************************************//
/**处理数据库更新请求
*@param String sql :SQL语句
*@return 更新记录条数
*/
public int executeUpdate(String sql) {
int temp = 0;
try {
Connection mycon = pool.takeConnection();
Statement mystm = mycon.createStatement();
temp = mystm.executeUpdate(sql);
mystm.close();
pool.putConnection(mycon);
} catch(Exception e){return -1;}
return temp;
}
//*****************************************************************************//
/** 处理查询请求
*@param String sql:sql语句
*@param int off:返回记录的起点
*@param int length:返回记录条数
*@return 返回一个Iterator型的记录集合,每条记录由一个Hashtable构成,失败则返回空。
*/
public Iterator executeQuery(String sql,int off,int length){
int rsType = TYPE_SCROLL_INSENSITIVE ;
int rscurr = CONCUR_READ_ONLY ;
try{
//查询一个结果集
Connection mycon = pool.takeConnection();
Statement mystm = mycon.createStatement(rsType,rscurr);
ResultSet myrs = mystm.executeQuery(sql);
//提取列名
ResultSetMetaData rsmd = myrs.getMetaData();
int colnum=rsmd.getColumnCount();
String[] colNames = new String[colnum];
for (int i=1;i<=colnum;i++){
colNames[i-1] = rsmd.getColumnName(i);
}
//建立自定义的结果集
int i=length;
AbstractCollection result=new LinkedList();
if(myrs.absolute(off)){;
while(myrs.next() && i>0) {
Hashtable temp = new Hashtable(colnum);
for(int j=0;j<colnum;j++) {
temp.put(colNames[j],myrs.getString(colNames[j]));
}
result.add(temp);
i--;
}
}
myrs.close();
mystm.close();
pool.putConnection(mycon);
//返回结果集
return result.iterator();
}catch(Exception e){ return null;}
}
//***************************************************************************//
}
//**************************************************************************************//
//****************************************************************************//
//类名:MouseConPool //
//功能:建立一个数据库连接池,并为管理该连接池提供接口 //
//完成日:01.04.25 //
//****************************************************************************//
package com.nets.mouse.database;
import java.sql.*;
import java.util.*;
/**数据库连接池
*@author Mouse
*@version 1.0
*/
public class MouseConPool {
private Hashtable mouseCons;//存放连接的集合
private int increment;//用尽后的自增长尺寸
private String dbURL, user, password;//数据库、用户名、密码、
//*******************************************************************//
/** 初始化连接池
*@param String dbURL:数据库地址
*@param String user:用户名
*@param String password:密码
*@param String drvClassName:数据库驱动名
*/
public MouseConPool( String dbURL,
String user,
String password,
String drvClassName,
int initCons,
int increment)
throws SQLException, ClassNotFoundException {
//装载特定的数据驱动
Class.forName(drvClassName);
//设置数据源、用户名、密码、
this.dbURL = dbURL;
this.user = user;
this.password = password;
this.increment = increment;
//定义连接集合
mouseCons = new Hashtable();
// 将连接池置入哈希表
// FALSE说明没有分配
for(int i = 0; i < initCons; i++) {
mouseCons.put(DriverManager.getConnection(dbURL, user, password),
Boolean.FALSE);
}
}
//************************************************************//
/**分配一个连接
*@return 返回一个连接
*/
public Connection takeConnection() throws SQLException {
Connection con = null;
Enumeration cons = mouseCons.keys();
synchronized (mouseCons) {
while(cons.hasMoreElements()) {
con = (Connection)cons.nextElement();
Boolean b = (Boolean)mouseCons.get(con);
if (b == Boolean.FALSE) {
// 测试这个连接是否可用
try {
con.setAutoCommit(true);
}
catch(SQLException e) {
// 这个连接有不可用,新建一个来代替它
con = DriverManager.getConnection(dbURL, user, password);
}
// 是否使用设为true
mouseCons.put(con, Boolean.TRUE);
// 返回一个连接
return con;
}
}
}
//没有找到,扩充集合
for(int i = 0; i < increment; i++) {
mouseCons.put(DriverManager.getConnection(dbURL, user, password),
Boolean.FALSE);
}
//递归
return takeConnection();
}
//****************************************************************//
/**释放一个连接
*@param 预归还的连接
*/
public void putConnection(Connection returned) {
Connection con;
Enumeration cons = mouseCons.keys();
while (cons.hasMoreElements()) {
con = (Connection)cons.nextElement();
if (con == returned) {
mouseCons.put(con, Boolean.FALSE);
break;
}
}
}
//******************************************************************//
}
dragon_bill
2001-04-29
打赏
举报
回复
把code貼出來...
yangzi
2001-04-29
打赏
举报
回复
应该是mysql的问题,
图书管理系统
jsp
+
mysql
图书管理系统
jsp
+
mysql
图书管理系统
jsp
+
mysql
图书管理系统
jsp
+
mysql
图书管理系统
jsp
+
mysql
图书管理系统
jsp
+
mysql
JSP
论坛源码
jsp
+
mysql
+tomcat
运行环境:jdk1.6 tomcat 5.0以上版本
mysql
5.0版本以上 myeclipse 6.0版本以上 用
jsp
+
mysql
+tomcat写的简单bbs论坛。实现注册,登录,发帖,回帖,后台管理员管理前台等功能。并且含有配置过程哦!
jsp
servlet
mysql
实现学生成绩管理系统实战教程
采用
jsp
+servlet+
mysql
+jquery+ajax 面向接口的MVC设计模式实现学生成绩管理系统,主要功能有学生成绩的增删改查、批量导入导出,图表展示统计结果等。
学生成绩管理系统源代码(
jsp
+
mysql
)+课程设计报告
本系统采用
jsp
+
mysql
技术完成,可以作为课程设计参考(内含课程设计报告),也可作为学习
jsp
的范例
基于Servlet
JSP
MySQL
的用户注册模块V1.0
用户通过网页(
JSP
)输入用户名、真名和密码,Servlet接收后通过JDBC将信息保存到
MySQL
中。
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章