BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #36879同步于 2014/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java web连接access数据库报错,请大家帮忙看下

chenheng1989
2014/12/9镜像同步7 回复
代码如下: package com.service; import java.sql.*; import java.util.List; import com.beans.County; import com.beans.Family; import com.beans.Province; import com.beans.Questionnaire; import com.beans.User; import com.beans.VillageCommittee; import sun.jdbc.odbc.*; public class WriteToAccess { public void saveFamilyInfo(List<Family> list) { String JDriver="sun.jdbc.odbc.JdbcOdbcDriver"; String connectDB="jdbc:odbc:Output_data"; try{ Class.forName(JDriver); } catch(java.lang.ClassNotFoundException e){ System.out.println("ForName:"+e.getMessage()); } try{ Connection con=DriverManager.getConnection(connectDB,"","");//此处报错 Statement stmt=con.createStatement(); String query=null; for (int i = 0; i < list.size(); i++) { Family family = list.get(i); String familyId=family.getFamilyId(); Integer villageCommittee=family.getVillageCommittee().getVillageCommitteeId(); Integer province=family.getProvince().getProvinceId(); Integer county=family.getCounty().getCountyId(); Integer familySize=family.getFamilySize(); Integer income=family.getIncome(); Integer user=family.getUser().getUserID(); String createTime=family.getCreateTime(); query="insert into 家庭信息表(familyId,familySize,income,createTime,province,villageCommittee,county,user) values ('" + familyId + "'," + familySize + "," + income + ",'" + createTime + "'," + province + "," + villageCommittee +"," +county +"," +user + ")"; stmt.executeUpdate(query); } stmt.close(); con.close(); } catch(SQLException e){ System.out.println("SQLException:"+e.getMessage()); } } } 报错如下: 严重: Servlet.service() for servlet [TransferFamilyInfo] in context with path [/eQuestionnaire] threw exception java.lang.NullPointerException at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:453) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at com.service.WriteToAccess.saveFamilyInfo(WriteToAccess.java:28) at servlet.TransferFamilyInfo.doGet(TransferFamilyInfo.java:54) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 14:25:47,881 DEBUG DriverManagerConnectionProviderImpl:120 - Connection pool now considered primed; min-size will be maintained
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
chenheng1989机器人#1 · 2014/12/9
写了个demo单独运行,却没有问题,如下: import java.sql.*; import sun.jdbc.odbc.*; public class CreateTable02_4_2{ public static void main(String[] args){ String JDriver="sun.jdbc.odbc.JdbcOdbcDriver"; String connectDB="jdbc:odbc:Output_data"; //String connectDB="jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+"D://access_test//Book.accdb"; try{ Class.forName(JDriver); } catch(java.lang.ClassNotFoundException e){ System.out.println("ForName:"+e.getMessage()); } try{ Connection con=DriverManager.getConnection(connectDB); Statement stmt=con.createStatement(); String query="create table 书目_by_java("+"编号 Text(20),"+"书名 Text(20),"+"作者 Text(10),"+"书价 Number"+")"; stmt.executeUpdate(query); stmt.close(); con.close(); } catch(SQLException e){ System.out.println("SQLException:"+e.getMessage()); } } }
chenheng1989机器人#2 · 2014/12/9
弄了一个星期,硬是没弄好,还请大家帮帮忙啊,
lixing机器人#3 · 2014/12/9
没明白lz什么意思, 上面用的是Connection con=DriverManager.getConnection(connectDB,"",""); 下面用的是Connection con=DriverManager.getConnection(connectDB); 上面的方法应该要提供账号和密码才能登陆数据库吧。没用过Access不是很懂。
woaiyou机器人#4 · 2014/12/9
ls说的对,连接方法报错用demo的就行。
chenheng1989机器人#5 · 2014/12/10
不是那个问题,我都试过了,那个无关紧要,怎么写都对 【 在 woaiyou 的大作中提到: 】 : ls说的对,连接方法报错用demo的就行。
chenheng1989机器人#6 · 2014/12/10
这个怎么写都对,access没设置账户&密码 【 在 lixing 的大作中提到: 】 : 没明白lz什么意思, : 上面用的是Connection con=DriverManager.getConnection(connectDB,"",""); : 下面用的是Connection con=DriverManager.getConnection(connectDB); : ...................
lixing机器人#7 · 2014/12/10
【 在 chenheng1989 的大作中提到: 】 : 这个怎么写都对,access没设置账户&密码 怎么写都对,那你又注释此处报错。既然是一样的程序,demo没问题,那主代码就不应该有问题。既然有问题,那就不是这里的问题了,你应该从其他方面考虑。