当前位置: 代码迷 >> Java Web开发 >> JSP连数据库错误
  详细解决方案

JSP连数据库错误

热度:179   发布时间:2007-01-23 14:18:00.0
以下是引用无理取闹在2007-1-23 14:15:00的发言:

(我可不是这个版的斑竹)

我晕,你上面写着版主。。。又没说是哪的 偶那知道。。随便了  你以前是韩峰吧 呵呵


----------------解决方案--------------------------------------------------------
程序代码:

register.jsp代码:
<%@ page language="java" import="com.simon.db.*,java.sql.*,java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
String name = request.getParameter("name");
String ID = request.getParameter("password");
String checkID = request.getParameter("checkpassword");
String sex = request.getParameter("sex");
String mobelphone = request.getParameter("mobelphone");
String qq = request.getParameter("QICQ");
String Email = request.getParameter("E-mail");
String province = request.getParameter("province");
String city = request.getParameter("city");

String SQLCommand = "insert into Student_info values('"
+ ID + "', " + 1 + ", '" + province + "', '" + city + "', "
+ null + "', '" + mobelphone + "', '" + qq + "', '" + Email +"');";
%>
<%
Connection con = DBConnect.getConnection();
Statement stmt = con.createStatement();
stmt.execute(SQLCommand);
con.close();
response.sendRedirect("register/registersuccess.jsp");
%>

就在上面,你能保证你填满了所有的输入域吗?

只有一个不填 ,那你直接使用,就会出空指针异常


----------------解决方案--------------------------------------------------------
你得到了这些参数以后,应该先判断一下是不是为null

如果不是,再把它们加入到SQLCommand里去

----------------解决方案--------------------------------------------------------
public static Connection getConnection() {
ResourceBundle rb = ResourceBundle.getBundle("db");

try {
String driverName = rb.getString("db.driver");
Driver dirver = (Driver)Class.forName(driverName).newInstance();
String url = rb.getString("db.url");
Connection con = DriverManager.getConnection(url);
return con;

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

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

} catch(IllegalAccessException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch(Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
return null;
}
最后怎么返回null
----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2007-1-23 14:21:00的发言:
你得到了这些参数以后,应该先判断一下是不是为null

如果不是,再把它们加入到SQLCommand里去

这里有可能是NULL的  但是我的数据库设计这些字段是可以放入空值的啊!!!


----------------解决方案--------------------------------------------------------
看我的回复了么
----------------解决方案--------------------------------------------------------
以下是引用无理取闹在2007-1-23 14:23:00的发言:
public static Connection getConnection() {
ResourceBundle rb = ResourceBundle.getBundle("db");

try {
String driverName = rb.getString("db.driver");
Driver dirver = (Driver)Class.forName(driverName).newInstance();
String url = rb.getString("db.url");
Connection con = DriverManager.getConnection(url);
return con;

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

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

} catch(IllegalAccessException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch(Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
return null;
}
最后怎么返回null

因为最后不加一句这个的话  他报错啊。。然后我就参考别人写的代码  加了这么一句。。。
具体什么意思  说实话我还真不知道。。。。可能我想人家写的时候就是不会抛出异常。。
这一句只是为了让这个方法不报错而已  不会就是这的问题吧。。。
----------------解决方案--------------------------------------------------------
很简单,在你的return null,前面加上一句System.out.println("asdfsdf");
,看看有没有输出,如果有输出,那么你就把null给返回了
----------------解决方案--------------------------------------------------------
好的  我试试 
----------------解决方案--------------------------------------------------------

千里你说会不会return null呢


----------------解决方案--------------------------------------------------------
  相关解决方案