java连接数据库空指针异常_链接数据库空指针异常 和 url地址异常求大牛教

问题描述:

代码package util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class DBUtil {

private String driver;

private String url;

private String username;

private String password;

private Connection con;

private PreparedStatement pstmt;

private ResultSet rs;

public void setDriver(String driver){

this.driver=driver;

}

public void setUrl(String url){

this.url=url;

}

public void setUsername(String username){

this.username=username;

}

public void setPassword(String password){

this.password=password;

}

public DBUtil(){

driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";

url="jdbc:sqlserver://127.0.0.1:1433;databaseName=yyghxt";

username="sa";

password="123456";

}

private Connection getConnection() throws SQLException{

try{

Class.forName(driver);

con=DriverManager.getConnection(url,username,password);

}catch(ClassNotFoundException e){

e.printStackTrace();

}

return con;

}

private PreparedStatement getPrepareStatement(String sql){

try{

pstmt=getConnection().prepareStatement(sql);

}catch(SQLException e){

e.printStackTrace();

}

return pstmt;

}

private void setParams(String sql,String[]params){

pstmt=this.getPrepareStatement(sql);

for(int i=0;i

try{

pstmt.setString(i+1, params[i]);

}catch(SQLException e){

e.printStackTrace();

}

}

public List getList(String sql,String[]params){

List list=new ArrayList();

try{

this.setParams(sql, params);

ResultSet rs=pstmt.executeQuery();

ResultSetMetaData rsmd= rs.getMetaData();

while(rs.next()){

Map m=new HashMap();

for(int i=1;i<=rsmd.getColumnCount();i++){

String colName=rsmd.getColumnName(i);

m.put(colName,rs.getString(colName));

}

list.add(m);

}

}catch(SQLException e){

e.printStackTrace();

}finally{

close();

}

return list;

}

public Map getMap(String sql,String[]params){

List list=getList(sql,params);

if(list.isEmpty())

return null;

else

return(Map)list.get(0);

}

public int update(String sql,String[]params){

int recNo=0;

try{

setParams(sql,params);

recNo=pstmt.executeUpdate();

}catch(Exception e){

e.printStackTrace();

}finally{

close();

}

return recNo;

}

private void close(){

try{

if(rs!=null)

rs.close();

if(pstmt!=null)

pstmt.close();

if(con!=null)

con.close();

}catch(SQLException e){

}

}

}

报错信息

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.

at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at util.DBUtil.getConnection(DBUtil.java:45)

at util.DBUtil.getPrepareStatement(DBUtil.java:56)

at util.DBUtil.setParams(DBUtil.java:66)

at util.DBUtil.getList(DBUtil.java:80)

at util.DBUtil.getMap(DBUtil.java:99)

at beans.UserInfo.checkName(UserInfo.java:52)

at servlet.userInfoController.doPost(userInfoController.java:34)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

六月 09, 2017 10:29:44 上午 org.apache.catalina.core.StandardWrapperValve invoke

严重: Servlet.service() for servlet [userInfoController] in context with path [/yyghxt] threw exception

java.lang.NullPointerException

at util.DBUtil.setParams(DBUtil.java:70)

at util.DBUtil.getList(DBUtil.java:80)

at util.DBUtil.getMap(DBUtil.java:99)

at beans.UserInfo.checkName(UserInfo.java:52)

at servlet.userInfoController.doPost(userInfoController.java:34)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

问题解答:

driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";

这个语句跟版本有关系有的jdbc在前面,有的就是sqlserver在前面。

com.microsoft.jdbc.sqlserver.SQLServerDriver

com.microsoft.sqlserver.jdbc.SQLServerDriver

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值