当前位置: 代码迷 >> Java Web开发 >> 数据库连接的小问题
  详细解决方案

数据库连接的小问题

热度:172   发布时间:2008-05-01 11:39:59.0
数据库连接的小问题
package dao;

import java.io.*;
import java.net.*;

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);
            }
    }
}
为什么会插不进去 说有空指针
搜索更多相关主题的帖子: 数据库  

----------------解决方案--------------------------------------------------------
回复 1# 的帖子
你的driverClass, url, user,password根本就没有具体指出是什么???
去我论坛看下,里面有相关帖子!
----------------解决方案--------------------------------------------------------
同意楼上的.driverClass, url, user,password什么都没有,当然不能连上了
----------------解决方案--------------------------------------------------------
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]]
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2008-05-30 16:24:47
cfk0621

等 级:新手上路
帖 子:36
专家分:0
注 册:2007-8-25
6
  得分:0 
没值啊!
----------------解决方案--------------------------------------------------------
  相关解决方案