JB2006+oracle10g,在原来的电脑上运行正常。
现在换到另一台电脑上开发。出现问题。测试以下程序,运行正常。(是否说明数据库安装是没问题了?)
package test;
import java.sql.*;
public class test {
public static void main(String[] args) throws Exception { Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");
PreparedStatement pst=null;
String sql="insert into post(name) "+
"values (?)";
try {
pst = conn.prepareStatement(sql);
pst.setString(1,"345");
pst.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}finally {
try {
pst.close();
pst = null;
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
} }}问题描述--------------------------------------------------
没有找到类1
2008-9-13 11:17:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet postaddservlet threw exception
java.lang.NullPointerException
at dao.base.PostAddDao.insertpost(PostAddDao.java:28)
at servlet.base.PostAddServlet.doGet(PostAddServlet.java:29)
at servlet.base.PostAddServlet.doPost(PostAddServlet.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
--------------------------------------------------------------//postAddServlet
package servlet.base;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import bean.base.*;
import dao.base.*;
public class PostAddServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //Initialize global variables
public void init() throws ServletException {
} //Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
request.setCharacterEncoding("gbk");
String name=request.getParameter("name");
System.out.println(name);
PostBean bean=new PostBean();
bean.setName(name); PostAddDao dao=new PostAddDao();
if(dao.insertpost(bean)>0){
request.setAttribute("postInsertSuccess","插入成功");
response.sendRedirect("/WebModule1/base/postsearch.jsp");
} } //Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
} //Clean up resources
public void destroy() {
}
}
现在换到另一台电脑上开发。出现问题。测试以下程序,运行正常。(是否说明数据库安装是没问题了?)
package test;
import java.sql.*;
public class test {
public static void main(String[] args) throws Exception { Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");
PreparedStatement pst=null;
String sql="insert into post(name) "+
"values (?)";
try {
pst = conn.prepareStatement(sql);
pst.setString(1,"345");
pst.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}finally {
try {
pst.close();
pst = null;
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
} }}问题描述--------------------------------------------------
没有找到类1
2008-9-13 11:17:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet postaddservlet threw exception
java.lang.NullPointerException
at dao.base.PostAddDao.insertpost(PostAddDao.java:28)
at servlet.base.PostAddServlet.doGet(PostAddServlet.java:29)
at servlet.base.PostAddServlet.doPost(PostAddServlet.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
--------------------------------------------------------------//postAddServlet
package servlet.base;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import bean.base.*;
import dao.base.*;
public class PostAddServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //Initialize global variables
public void init() throws ServletException {
} //Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
request.setCharacterEncoding("gbk");
String name=request.getParameter("name");
System.out.println(name);
PostBean bean=new PostBean();
bean.setName(name); PostAddDao dao=new PostAddDao();
if(dao.insertpost(bean)>0){
request.setAttribute("postInsertSuccess","插入成功");
response.sendRedirect("/WebModule1/base/postsearch.jsp");
} } //Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
} //Clean up resources
public void destroy() {
}
}
package dao.base;
import bean.base.PostBean;
import dbconn.*;
import java.sql.*;
public class PostAddDao {
public int insertpost(PostBean bean)
{
System.out.println("insertpost:"+bean.getName());
int result=0;
Connection conn=DbConn.getConn();
PreparedStatement pst=null;
String sql="insert into post(name) "+
"values (?)";
try {
System.out.println("ok-1"); //!!!!!!!!!!此语句能执行(见下面错误信息)
pst = conn.prepareStatement(sql); //!!!!怀疑该语句处出了问题?
System.out.println("ok-2"); //!!!!!!!!!!此语句已不能执行到(见下面错误信息)
pst.setString(1,bean.getName());
result=pst.executeUpdate(); } catch (SQLException ex) {
ex.printStackTrace();
}finally { try {
pst.close();
pst = null;
conn.close();
conn = null;
} catch (SQLException e) { e.printStackTrace();
} } return result;
}
}insertpost:few
没有找到类ok-1
2008-9-13 12:33:59 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet postaddservlet threw exception
java.lang.NullPointerException
at dao.base.PostAddDao.insertpost(PostAddDao.java:27)
at servlet.base.PostAddServlet.doGet(PostAddServlet.java:29)
at servlet.base.PostAddServlet.doPost(PostAddServlet.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
因为你开始说了在以前的的机子上是好的。所以我想,你是不是忘记修改DbConn中的链接Oracle的字符串了啊。
你这里jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger"。说的是本地机应该有这个数据库。
如果你本机没有Oracle,而是使用以前那台机子的Oracle的话,是不是你的链接应该改改呢。
比如:jdbc:oracle:thin:@127.0.0.1:1521:orcl 改成 jdbc:oracle:thin:@以前机子的IP:1521:orcl
测试以下程序,运行正常。(是否说明数据库安装是没问题了?)
package test;
import java.sql.*;
public class test {
public static void main(String[] args) throws Exception { Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");
PreparedStatement pst=null;
String sql="insert into post(name) "+
"values (?)";
try {
pst = conn.prepareStatement(sql);
pst.setString(1,"345");
pst.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}finally {
try {
pst.close();
pst = null;
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
} } }