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;
}
下面是在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);
----------------解决方案--------------------------------------------------------
应该是这里有问题吧,不知道你写什么
DBConnection.getConnection();
----------------解决方案--------------------------------------------------------
本来不想回这个帖子的,楼主那天说的话我觉得很难接受。对于那个五角星的问题说我光说不练。我想那个代码很多人都可以写的出来,只要懂一点程序控制的人都可以写出来,我觉得楼主自己都没有动手写,只不过发帖子跟别人要代码,我觉得这种做法真的不可取,如果楼主把自己写的代码放上去,我想一定会有很多人帮你的。有的时候一些回帖可能并不能给你一些具体的代码,各种原因吧,时间,精力,等等。但是我觉得没有必要为了一句话,把坛子里的气愤搞的很不融洽,人家回帖,说明人家是热心的,就算帖子对你没有任何帮助。我觉得作为楼主的也要客套一下。起码是对别人劳动成果的尊重。更何况回帖子的应该没有恶意。今天你把代码发上来了,我手上也恰好有我以前写的一个demo,就把代码发给你参考下,还是那句话,不见得有帮助。
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://127.0.0.1:3306/my_db?user=root&password=root";
Connection cn = DriverManager.getConnection(url);
Statement st = cn.createStatement();
我测试过的没问题,把驱动什么的都放进去就行了
----------------解决方案--------------------------------------------------------
。。。
上面的连数据库的东西我说我写好了,DBConnection.getConnection();就是我上面的那部分代码,我测试过了没问题的。但是在JSP中的连不进去。。
----------------解决方案--------------------------------------------------------
classpath有没有设好?
把你的那个DBConnection 帖出来
----------------解决方案--------------------------------------------------------
3楼的愤青,顶了。。。
----------------解决方案--------------------------------------------------------
[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类
----------------解决方案--------------------------------------------------------
Connection conn = DriverManager.getConnection("jdbc:odbc:JDBC");
这句缺少用户名和密码行吗??没用过jdbc-odbc连接数据库不太清楚你的写法行不行。。。。
----------------解决方案--------------------------------------------------------
我的那段代码也是直接写在jsp里的
----------------解决方案--------------------------------------------------------
回来了,一同学生病了,打了120都,搞到现在家里来人了,我也回来了,快死了。。
我再说一下我的问题是 我的那个CLASS测试是可以的连上数据库的 但是在JSP页面中就不可以
----------------解决方案--------------------------------------------------------