注册 登录
编程论坛 J2EE论坛

数据库连接的小问题

新手上路了 发布于 2008-05-01 11:39, 960 次点击
package dao;

import *;
import *;

import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * 加载驱动
 */
public class Driver extends HttpServlet {
   
    /**
    初始化数据库的驱动参数
    */
    private String driverClass;
    private String url;
    private String user;
    private String password;
   @Override
    public void init()
    {
        driverClass=getInitParameter("driverClass");
        url=getInitParameter("url");
        user=getInitParameter("user");
        password= getInitParameter("password");
    }

    public String getDriverClass() {
        return driverClass;
    }

    public String getUrl() {
        return url;
    }

    public String getUser() {
        return user;
    }

    public String getPassword() {
        return password;
    }
   
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Administrator
 */

public class DBUtil {
   Driver driver = new Driver();
   private Connection conn = null;
  DBUtil()
  {
     if(conn==null){
        try {
      
            Class.forName(driver.getDriverClass());
            conn=DriverManager.getConnection(driver.getUrl(),driver.getUser(),driver.getPassword());
        } catch (Exception ex) {
            Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
          }
    }
  }
  public Connection getConnection()
  {
    return conn;
  }
      
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import dao.DBUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Administrator
 */
public class Test {
    public static void main(String args[])
    {

            DBUtil db = new DBUtil();
            try {

                java.sql.PreparedStatement ps = db.getConnection().prepareStatement("insert into class(name) values (?)");
                ps.setString(1, "张三");
                ps.executeUpdate();
                ps.close();
            } catch (SQLException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }
    }
}
为什么会插不进去 说有空指针
5 回复
#2
Ethip2008-05-01 15:58
回复 1# 的帖子
你的driverClass, url, user,password根本就没有具体指出是什么???
去我论坛看下,里面有相关帖子!
#3
z5509469412008-05-11 08:57
同意楼上的.driverClass, url, user,password什么都没有,当然不能连上了
#4
菜鸟也疯狂2008-05-11 23:58
public void init()
    {
        driverClass=getInitParameter("driverClass");
        url=getInitParameter("url");
        user=getInitParameter("user");
        password= getInitParameter("password");
    }
抄书上的吧?你这样写的话,get方法返回的这几个应该都是空值.
这里的"driverClass","url","user","password"应该是根据你自己的驱动类名,URL,数据库用户名以及密码.

[[it] 本帖最后由 菜鸟也疯狂 于 2008-5-11 23:59 编辑 [/it]]
#5
2008-05-31 00:24
你这么写应该是没有问题的,但是你要第一先看一下你在WEB.XML里面是否有配置这些参数
#6
cfk06212008-05-31 18:05
没值啊!
1