返回信息流代码如下:
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
这是一条镜像帖。来源:北邮人论坛 / java / #36879同步于 2014/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
java web连接access数据库报错,请大家帮忙看下
chenheng1989
2014/12/9镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
写了个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());
}
}
}
没明白lz什么意思,
上面用的是Connection con=DriverManager.getConnection(connectDB,"","");
下面用的是Connection con=DriverManager.getConnection(connectDB);
上面的方法应该要提供账号和密码才能登陆数据库吧。没用过Access不是很懂。
不是那个问题,我都试过了,那个无关紧要,怎么写都对
【 在 woaiyou 的大作中提到: 】
: ls说的对,连接方法报错用demo的就行。
这个怎么写都对,access没设置账户&密码
【 在 lixing 的大作中提到: 】
: 没明白lz什么意思,
: 上面用的是Connection con=DriverManager.getConnection(connectDB,"","");
: 下面用的是Connection con=DriverManager.getConnection(connectDB);
: ...................
【 在 chenheng1989 的大作中提到: 】
: 这个怎么写都对,access没设置账户&密码
怎么写都对,那你又注释此处报错。既然是一样的程序,demo没问题,那主代码就不应该有问题。既然有问题,那就不是这里的问题了,你应该从其他方面考虑。