小弟编了一个JAVA连接数据库程序数据库用的是mysql驱动程序下载的是mysql-connector-java-3.1.12.zip,我把mysql-connector-java-3.1.12-bin.jar放到了C:\j2sdk1.4.2\lib下可是就是连不上数据库代码如下:
import java.sql.*;
public class UseDriverManager {
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
String url = "jdbc:mysql://localhost/jsp_test";
String userName = "root";
String password = "19850209";
Connection conn = null;
try{
System.out.println("加载数据库之前");
Class.forName("com.mysql.jdbc.Driver");
System.out.println("加载数据库之后");
}catch(ClassNotFoundException e){
System.out.println("加载驱动器类之后出现异常");
}
try{
conn = null;
System.out.println("第一次连接数据库之前");
conn = DriverManager.getConnection(url,userName,password);
System.out.println("第一次连接数据库之后");
}catch(SQLException e){
System.out.println("连接数据库出现异常");
}
if(conn == null)
System.out.println("连接数据库失败");
else
System.out.println("连接数据库成功");
// TODO: Add your code here
try{
conn.close();
}catch(SQLException e){
System.out.println("关闭数据库异常");
}
}
}
运行结果是:
加载数据库之前
加载驱动器类之后出现异常
第一次连接数据库之前
连接数据库出现异常
连接数据库失败
Exception in thread "main" java.lang.NullPointerException
at ch13.UseDriverManager.main(UseDriverManager.java:38)就是这句话 conn.close();
请高手帮忙看看
import java.sql.*;
public class UseDriverManager {
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
String url = "jdbc:mysql://localhost/jsp_test";
String userName = "root";
String password = "19850209";
Connection conn = null;
try{
System.out.println("加载数据库之前");
Class.forName("com.mysql.jdbc.Driver");
System.out.println("加载数据库之后");
}catch(ClassNotFoundException e){
System.out.println("加载驱动器类之后出现异常");
}
try{
conn = null;
System.out.println("第一次连接数据库之前");
conn = DriverManager.getConnection(url,userName,password);
System.out.println("第一次连接数据库之后");
}catch(SQLException e){
System.out.println("连接数据库出现异常");
}
if(conn == null)
System.out.println("连接数据库失败");
else
System.out.println("连接数据库成功");
// TODO: Add your code here
try{
conn.close();
}catch(SQLException e){
System.out.println("关闭数据库异常");
}
}
}
运行结果是:
加载数据库之前
加载驱动器类之后出现异常
第一次连接数据库之前
连接数据库出现异常
连接数据库失败
Exception in thread "main" java.lang.NullPointerException
at ch13.UseDriverManager.main(UseDriverManager.java:38)就是这句话 conn.close();
请高手帮忙看看
加载驱动器类之后出现异常 很显然找不到驱动啊
C:\j2sdk1.4.2\lib\mysql-connector-java-3.1.12-bin.jar;
public class UseDriverManager
{
public static void main(String[] args) {
String url = "jdbc:mysql://localhost/jsp_test";
String userName = "root";
String password = "19850209";
Connection conn = null;
try
{
System.out.println("加载数据库之前");
Class.forName("com.mysql.jdbc.Driver");
System.out.println("加载数据库之后");
}catch(ClassNotFoundException e)
{
System.out.println("加载驱动器类之后出现异常");
}
try
{
System.out.println("第一次连接数据库之前");
conn = DriverManager.getConnection(url,userName,password);
System.out.println("第一次连接数据库之后");
}
catch(SQLException e)
{
System.out.println("连接数据库出现异常");
}
if(conn == null)
{
System.out.println("连接数据库失败");
}
else
{
System.out.println("连接数据库成功");
// TODO: Add your code here
try{
conn.close();
}catch(SQLException e){
System.out.println("关闭数据库异常");
}
}
}
}这样就可以了,else少了{},既然你驱动加载失败,当然connection为空,为空的connection操作close当然是空指针了。
加载数据库之前
加载驱动器类之后出现异常
第一次连接数据库之前
连接数据库出现异常
连接数据库失败
Exception in thread "main" java.lang.NullPointerException
at ch13.UseDriverManager.main(UseDriverManager.java:38)
大哥 这个东西放在你的web-inf下的lib里 晕
作成者:陈一男
作成日:2005/7/10
*/
package offen.com.dbdriver;
import java.sql.*;
public class Mysql_Driver
{
//获取数据库联接方法
String sDBDriver = "com.mysql.jdbc.Driver";
String url ="jdbc:mysql://localhost:3306/test"; //test数据库名字
String user = "root";//用户名
String password = "root";//密码
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
//构造函数 在初始化时加载数据库驱动建立连接
public Mysql_Driver()
{
try {
Class.forName(sDBDriver);
} catch (java.lang.ClassNotFoundException e) {
System.err.println("sql_data(): " + e.getMessage());
}
}
//执行sql的插入操作
public void executeInsert(String sql) {
try {
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (SQLException ex) {
System.err.println("sql_data.executeUpdate:" + ex.getMessage());
}
}
/**
* 执行sql的查找操作
* 应用时用 rs.getString("列名字")可以得到相应的数据
* */
public ResultSet executeQuery(String sql) {
try {
conn = DriverManager.getConnection(url, user, password);
stmt =
conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (Exception ex) {
System.err.println("sql_data.executeQuery:" + ex.getMessage());
}
return rs;
}
//执行修改操作
public void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
}
//执行删除操作
public void executeDelete(String sql) {
try {
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (SQLException ex) {
System.err.println("sql_data.executeDelete:" + ex.getMessage());
}
}
//关闭Statement流对象
public void closeStmt() {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭Connection流对象
public void closeConn() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//测试(通过)
public static void main(String[] args) throws Exception
{
Mysql_Driver db = new Mysql_Driver();//建立连接
String sql = "select * from book";
ResultSet rs = db.executeQuery(sql);//执行操作
String userName = null;
String passWord = null;
while(rs.next())
{
userName = rs.getString("id");
passWord = rs.getString("name");//打印结果
}
db.closeConn();//
db.closeStmt();//关闭流
System.out.println(userName);
System.out.println(passWord);
}}
这么写 不要一开始就把main上去不是好习惯
还有 你最好是把错误信息打印出来
e.printStackTrace();