| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:[求助]连数据库郁闷的
取消只看楼主 加入收藏
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
 问题点数:0 回复次数:5 
[求助]连数据库郁闷的

JAVABEAN中的连接代码如下:

try {
Class.forName("org.gjt.mm.mysql.Driver");
String user = rb.getString("db.mysqluser");
String password = rb.getString("db.mysqlpassword");
String url = rb.getString("db.mysqlurl");
//解决中文字符的问题
//url += "?useUnicode=true&characterEncoding=gb2312";
Connection con = DriverManager.getConnection(url,user,password);
return con;

} catch(ClassNotFoundException cnfExc) {
out.println(cnfExc.getMessage());
cnfExc.printStackTrace();

} catch(SQLException sqlExc) {
out.println(sqlExc.getMessage());
sqlExc.printStackTrace();

} catch(Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
err.println("出异常啦,返回回值!"); //测试连接成功没的,下同。
return null;
}

在.class中测试没有问题,可以通过并能读出数据库的内容。



下面是在JSP页面中的代码:
//建立数据连接
try {
out.println("000");
Connection conn = DBConnection.getConnection();
out.println(conn);
out.println("123");
Statement stmt = conn.createStatement();
out.println("456");
String sqlCommand = "insert into users values'(" + ID
+ "', '" + password + "', '" + "', '" + sex + "')";
stmt.execute(sqlCommand);

} catch(NullPointerException e) {
out.println(e.getMessage());
e.printStackTrace();

}
catch(IOException ioExc) {
out.println(ioExc.getMessage());
ioExc.printStackTrace();

} catch(SQLException sqlExc) {
out.println(sqlExc.getMessage());
sqlExc.printStackTrace();
}
//ResultSet rs = stmt.executeQuery(sqlCommand);
红色部分是我硬加的,因为他一直报NullPointerException异常,实在不明白什么回事,程序这样运行的话会在页面打印出 000 NULL 123 NULL。还请那位来解释下(上面说了,在CLASS下测试没有问题,可以连接并读到数据)
搜索更多相关主题的帖子: 数据库 
2007-04-03 01:24
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 
。。。
上面的连数据库的东西我说我写好了,DBConnection.getConnection();就是我上面的那部分代码,我测试过了没问题的。但是在JSP中的连不进去。。

开开心心的过&玩每一天!!!!
2007-04-03 10:12
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 

[CODE]package com.simon.db;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.text.SimpleDateFormat;
import static java.lang.System.out;
import static java.lang.System.err;
//import sun.jdbc.odbc.JdbcOdbcDriver; //连SQL的时候用到这个桥接驱动

public class DBConnection {

public static Connection con;

public DBConnection() {}

public static Connection getConnection() throws
IOException, SQLException {
// TODO Auto-generated constructor stub
ResourceBundle rb = ResourceBundle.getBundle("db");

try {
//String DriverName = rb.getString("db.mysqldriver");
//DriverName = com.MySQL.jdbc.Driver;
//Class.forName(DriverName);
Class.forName("org.gjt.mm.mysql.Driver");
String user = rb.getString("db.mysqluser");
String password = rb.getString("db.mysqlpassword");
String url = rb.getString("db.mysqlurl");
//解决中文字符的问题
//url += "?useUnicode=true&characterEncoding=gb2312";
con = DriverManager.getConnection(url,user,password);
return con;

} catch(ClassNotFoundException cnfExc) {
out.println(cnfExc.getMessage());
cnfExc.printStackTrace();

} catch(SQLException sqlExc) {
out.println(sqlExc.getMessage());
sqlExc.printStackTrace();
} catch(Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
err.println("出异常啦,返回回值!"); //测试连接成功没的,下同。
return null;
}

//下面是用数据源桥接驱动连接的SQL。
/*public static Connection getConnection() {

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
DriverManager.registerDriver(new JdbcOdbcDriver());
Connection conn = DriverManager.getConnection("jdbc:odbc:JDBC");
return conn;
} catch(ClassNotFoundException cnfExc) {
out.println(cnfExc.getMessage());
cnfExc.printStackTrace();

} catch(SQLException sqlExc) {
out.println(sqlExc.getMessage());
sqlExc.printStackTrace();

} catch(Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
//err.println("123");
return null;
} */

//sql语句执行方法,暂时没发现有什么用(结构也有点问题),主要是测试时用的。
public static void execute(String SQLCommand) {
try {
Statement stmt = getConnection().createStatement();
ResultSet rs = stmt.executeQuery("select * from users");
while(rs.next()) {
out.print(rs.getString(1));
out.print(rs.getString(2));
out.print(rs.getString(3));
}
return;

} catch(IOException ioExc) {
out.println(ioExc.getMessage());
ioExc.printStackTrace();

} catch(SQLException sqlExc) {
out.println(sqlExc.getMessage());
sqlExc.printStackTrace();
}
err.println("出异常啦,返回回值!");
}

public void close() {
try {
this.close();
} catch(Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
}

//这个方法在UTIL中也有一个,应该是把它放到那里的。
public static String getTime() {
long timer = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.CHINA);
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
return sdf.format(timer);
}
/**
* @param args
*/
public static void main(String[] args) throws Throwable{
// TODO Auto-generated method stub
out.println(getConnection());
//out.print(getTime());
execute("select * from users");
}
}[/CODE]



这是DBConnection类


开开心心的过&玩每一天!!!!
2007-04-03 11:26
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 
回来了,一同学生病了,打了120都,搞到现在家里来人了,我也回来了,快死了。。
我再说一下我的问题是 我的那个CLASS测试是可以的连上数据库的 但是在JSP页面中就不可以

开开心心的过&玩每一天!!!!
2007-04-03 22:22
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 

所以就是这样才郁闷啊,不然我怎么会找不到哪错呢 在类中运行就是可以的 在JSP中运行就是不可以的。
所以才郁闷啊


开开心心的过&玩每一天!!!!
2007-04-03 23:33
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
收藏
得分:0 

问题解决,解决方法就是我睡了一觉起来。重装了TOMACT,重配了CLASSPATH之类的所有的东西。
然后OK。  至于是哪出问题,我也不知道了


开开心心的过&玩每一天!!!!
2007-04-05 18:00
快速回复:[求助]连数据库郁闷的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038324 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved