SOS!崩溃了一下午加一晚上的问题,请高手指点迷津!

yansuihehe 2010-07-26 12:52:03
我弄一个用户注册的业务,建了一个连接数据库的javaBean(OracleConnBean)和一个存储用户信息的javaBean(PersonBean),然后用jsp处理请求并通过javaBean连接Oracle,并发送插入语句,具体如下:
1.jsp页面核心部分:
<body>
<jsp:useBean id="pb" class="example.PersonBean" />
<jsp:setProperty name="pb" property="*" />
<jsp:useBean id="ocb" class="example.OracleConnBean" />
<%
String sql = "insert into person values ('" + pb.getAccount()
+ "','" + pb.getName() + "','" + pb.getPass() + "','"
+ pb.getSex() + "','" + pb.getPhone() + "','"
+ pb.getEmail() + "')";
//t.print(sql);
ocb.getConnection("mary", "mary");
ocb.executeUpdate(sql);
ocb.closePstmt();
ocb.closeConn();
out.print("success!!");
%>
</body>
2.OracleConnBean的内容:
public class OracleConnBean {
public OracleConnBean() {

}

private Connection conn = null;

private PreparedStatement pstmt = null;

private ResultSet rs = null;

public void getConnection(String user, String pass) {
String url = "jdbc:oracle:thin:@localhost:1521:inspur";
try {
Class.forName("oracle.jdbc.driver.oracledriver");
conn = DriverManager.getConnection(url, user, pass);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

}

public ResultSet executeQuery(String sql) {
rs = null;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}

public void executeUpdate(String sql) {
try {
pstmt = conn.prepareStatement(sql);
pstmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}

public void closePstmt() {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

public void closeConn() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3.PersonBean的内容:
public class PersonBean {
private String account;

private String name;

private String pass;

private String sex;

private String phone;

private String email;

public PersonBean() {

}

public String getAccount() {
return account;
}

public void setAccount(String account) {
this.account = account;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPass() {
return pass;
}

public void setPass(String pass) {
this.pass = pass;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

}
最后,我在数据库中创建的表中的字段全是varcha2类型的。
执行了好几次都报错:org.apache.jasper.JasperException: Exception in JSP: /CheckRegister.jsp:35

32: <jsp:useBean id="ocb" class="example.OracleConnBean" />
33: <%
34: ocb.getConnection("mary", "mary");
35: ocb.executeUpdate(sql);
36: ocb.closePstmt();
37: ocb.closeConn();
38: out.print("success!!");
请大家看看哪儿出问题了,小弟不胜感激!
...全文
141 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
valen_jia 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qinghuait519 的回复:]
Class.forName("oracle.jdbc.driver.oracledriver");


改成
Class.forName("oracle.jdbc.driver.OracleDriver");

驱动器 类名写错了
[/Quote]
+1
jon_____ 2010-07-26
  • 打赏
  • 举报
回复
OMG
蝈蝈老师 2010-07-26
  • 打赏
  • 举报
回复
Class.forName("oracle.jdbc.driver.oracledriver");


改成
Class.forName("oracle.jdbc.driver.OracleDriver");

驱动器 类名写错了
蝈蝈老师 2010-07-26
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException: oracle.jdbc.driver.oracledriver

很明显,这是驱动程序没有找到。看看驱动包的jar加到项目中没有??
yansuihehe 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aa644509120 的回复:]
上面红色的地方有问题。。。
pstmt.executeUpdate(sql);
改成
pstmt.executeUpdate();
[/Quote]
改了还是不行啊,但是谢谢了
yansuihehe 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 aa644509120 的回复:]
在你的OracleConnBean类中执行!!!看行不!
public ResultSet executeQuery(String sql) {
rs = null;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(sql);
} catch (SQLException e) {
e.printSta……
[/Quote]
我在OracleConnBean类中写了main方法:
public static void main(String args[]){
OracleConnBean o = new OracleConnBean();
String sql = "insert into person values ('hdfsgff','fgffdgh','fdfsdhg','male','fddfgfs','fdsfdgf')";
o.getConnection("mary", "mary");
o.executeUpdate(sql);
o.closePstmt();
o.closeConn();
}
报错!java.lang.ClassNotFoundException: oracle.jdbc.driver.oracledriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at example.OracleConnBean.getConnection(OracleConnBean.java:19)
at example.OracleConnBean.main(OracleConnBean.java:67)
Exception in thread "main" java.lang.NullPointerException
at example.OracleConnBean.executeUpdate(OracleConnBean.java:42)
at example.OracleConnBean.main(OracleConnBean.java:68)
我不知道哪出问题了!高手请指点一下!
whlcy 2010-07-26
  • 打赏
  • 举报
回复
rs = pstmt.executeQuery(sql);
改成
rs = pstmt.executeQuery();
whlcy 2010-07-26
  • 打赏
  • 举报
回复
上面红色的地方有问题。。。
pstmt.executeUpdate(sql);
改成
pstmt.executeUpdate();
whlcy 2010-07-26
  • 打赏
  • 举报
回复
在你的OracleConnBean类中执行!!!看行不!
public ResultSet executeQuery(String sql) {
rs = null;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(sql);

} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}

public void executeUpdate(String sql) {
try {
pstmt = conn.prepareStatement(sql);
pstmt.executeUpdate(sql);

} catch (SQLException e) {
e.printStackTrace();
}
}
yansuihehe 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 coffee9527 的回复:]
检查你的SQL语句,最好打印到控制台一看就知道了然后把打印的语句在oracle中执行一下。看有么有错误。
[/Quote]
insert into person values ('fdsa','fds','fds','male','fds','fds') 没什么错误啊
coffee9527 2010-07-26
  • 打赏
  • 举报
回复
检查你的SQL语句,最好打印到控制台一看就知道了然后把打印的语句在oracle中执行一下。看有么有错误。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧