(我可不是这个版的斑竹)
我晕,你上面写着版主。。。又没说是哪的 偶那知道。。随便了 你以前是韩峰吧 呵呵
----------------解决方案--------------------------------------------------------
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
----------------解决方案--------------------------------------------------------
你得到了这些参数以后,应该先判断一下是不是为null
如果不是,再把它们加入到SQLCommand里去
这里有可能是NULL的 但是我的数据库设计这些字段是可以放入空值的啊!!!
----------------解决方案--------------------------------------------------------
看我的回复了么
----------------解决方案--------------------------------------------------------
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呢
----------------解决方案--------------------------------------------------------