站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题java连接数据库的问题。问题解决了一定揭贴。

java连接数据库的问题。问题解决了一定揭贴。

摘要: java连接数据库的问题。问题解决了一定揭贴。


java连接数据库,用到了PreparedStatement接口,出现这样的异常:
Exception in thread "main" java.lang.NullPointerException
at com.gay.PreTest.display(PreTest.java:64)
at com.gay.PreTest.main(PreTest.java:87)
但如果不用PreparedStatement接口就可以访问数据,不知道是哪里错了。下面是源文件:
package com.gay;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;


public class PreTest {
private Connection con;
private String url;
private String serverName;
private String portNumber;
private String databaseName;
private String userName;
private String password;
private String sql;
public PreTest() {
url = "jdbc:microsoft:sqlserver://";
serverName = "localhost";
portNumber = "1433";
databaseName = " gao";
userName = "sa";
password = "sa";
}

private String getConnectionUrl() {
return url + serverName + ":" + portNumber + ";databaseName=" +
databaseName + ";";
};

private Connection getConnection() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection(getConnectionUrl(), userName,
password);
if (con != null) {
System.out.println("连接成功!");
}
} catch (ClassNotFoundException ex) {
} catch (SQLException ex) {
/** @todo Handle this exception */
}
return con;
}

public void display() {

try {
con = getConnection();
PreparedStatement pstmt = con.prepareStatement(
"update info set address=? where name=?");
pstmt.setString(1, "武汉");
pstmt.setString(2, "李四");
pstmt.executeUpdate();
System.out.println("记录更新!");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select *from info");
while (rs.next()) {
System.out.print(rs.getString(1) + "/t");
System.out.print(rs.getString(2) + "/t");
System.out.print(rs.getInt(3) + "/t");
System.out.print(rs.getString(4) + "/n");
}
rs.close();
st.close();
con.close();
} catch (SQLException ex) {
}
}

public static void main(String[] args) {
PreTest test = new PreTest();
test.display();
}
}


空指针错误,看看你代码的64行,看看是哪个变量是NULL值.


你的PreTest没有得到connection你怎么用PreparedStatement 啊。。。


看错 不好意思。。


找不到PreTest.java:87 这一行在那,也就判断PreTest.java:64不是我复制出来的那一行。一眼过去看不出问题在那。

你的程序从有很多问题,试提出几个
getConnection() 从你是可以输出 null的,在display() 中没有进行检测。

你对抛出的Exception 从不做处理,最少要打印出来。你可以在网上找找java的Exception 处理规范。




在XP打补丁。
还有,检查密码什么,数据库名什么的,有没有笔误啊


↑返回目录
前一篇: 如何获得Set的Class?
后一篇: 求教JAVA文件操作