| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 838 人关注过本帖
标题:一个连接数据库的问题,愁死我了
只看楼主 加入收藏
xiaobohp
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-4-19
收藏
 问题点数:0 回复次数:6 
一个连接数据库的问题,愁死我了

老是提示我空指针异常,不知道这样连接数据库是不是可以

请教下各位

数据库驱动代码如下
package dao;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil
{
private static Connection conn;
public DBUtil(){}
static
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/things_store?

user=root");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}

public Connection getConn() {
return conn;
}
public static Connection getConnection()
{
return conn;
}
}

//被测试方法代码如下:
package dao;
import dao.CatalogDAO;
import dao.DBUtil;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import model.Catalog;
import model.Things;
public class CatalogDAOImpl implements CatalogDAO{

/** Creates a new instance of CatalogDAOImpl */
public CatalogDAOImpl() {
}

public void add(Catalog c) {
//DBUtil db = new DBUtil();
try {
PreparedStatement ps = DBUtil.getConnection().prepareStatement("INSERT INTO catalog(name) VALUES(?)");
ps.setString(1,c.getName());
ps.executeUpdate();
ps.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}

public void update(Catalog c) {
//DBUtil db = new DBUtil();
try {
PreparedStatement ps = DBUtil.getConnection().prepareStatement("UPDATE catalog SET name=? WHERE id=?");
ps.setString(1,c.getName());
ps.setInt(2,c.getID());
ps.executeUpdate();
ps.close();
} catch (SQLException ex) {

ex.printStackTrace();
}
}

public void delete(Catalog c) {
//DBUtil db = new DBUtil();
try {
PreparedStatement ps = DBUtil.getConnection().prepareStatement("DELETE from catalog WHERE id=?");
ps.setInt(1,c.getID());
ps.executeUpdate();
ps.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}

public Catalog get(int id) {
Catalog c = null;
//DBUtil db = new DBUtil();
PreparedStatement ps;
try {
c = new Catalog();
ps = DBUtil.getConnection().prepareStatement("SELECT * FROM catalog WHERE id=?");
ps.setInt(1,id);
ResultSet rs= ps.executeQuery();
if(rs.next())
{
c.setID(rs.getInt(1));
c.setName(rs.getString(2));
}
ps.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return c;
}

public ArrayList getCatalog() {
ArrayList al = new ArrayList();
Statement s;
try {
s = DBUtil.getConnection().createStatement();
ResultSet rs= s.executeQuery("SELECT * FROM catalog");
while (rs.next())
{
Catalog c = new Catalog();
c.setID(rs.getInt(1));
c.setName(rs.getString(2));
al.add(c);
}
s.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return al; //按传说中的命名规则,应该改为result;
}

public ArrayList getThings(Catalog c) {
ArrayList al = new ArrayList();
//DBUtil db = new DBUtil();
PreparedStatement ps;
try {
ps = DBUtil.getConnection().prepareStatement("SELECT * FROM catalog WHERE id=?");
ps.setInt(1,c.getID());//设置第一个位置
ResultSet rs= ps.executeQuery();
while (rs.next())
{
Things thing = new Things();
thing.setID(rs.getInt(1));
thing.setTitle(rs.getString(2));
thing.setAuthor(rs.getString(3));
thing.setPrice(rs.getDouble(4));
thing.setContent(rs.getString(5));
thing.setPicture(rs.getString(6));
thing.setPostTime(rs.getDate(7));
thing.setClicks(rs.getInt(8));
al.add(thing);
}
ps.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return al; //按传说中的命名规则,应该改为result;
}



}

搜索更多相关主题的帖子: 数据库 java import Connection 
2007-11-10 15:43
sea7
Rank: 2
等 级:新手上路
威 望:3
帖 子:291
专家分:0
注 册:2007-2-17
收藏
得分:0 
连接数据库怎么没有用户密码啊??

软件是一种修养
2007-11-10 16:09
xiaobohp
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-4-19
收藏
得分:0 
没有,自己做实验要什么密码呀!
问题是,在我自己机器好使,拿到别的机器就不行了
郁闷
什么毛病呢?

坚持, 只因不原放弃.
2007-11-10 19:04
枫飘天涯
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:251
专家分:0
注 册:2006-10-13
收藏
得分:0 

是换到别的机器吗 用的什么编辑器
楼主的是直连吧 是不是在另一台机器上面没有加载直连的三个jar包呢


*、還⒋聼媽媽德話吧 晩點再戀愛吧
2007-11-10 21:24
blackboy
Rank: 1
等 级:新手上路
威 望:1
帖 子:34
专家分:0
注 册:2007-10-21
收藏
得分:0 

换机器了 你的数据库没有密码 也有可能别人的数据库也没有密码 都是sa 这样能找到吗 所以最好用个密码 这样不会有问题了 localhost:3306 换机器了这个地方也应该改下把 只是我个人的看法

2007-11-10 22:52
glamey
Rank: 2
等 级:论坛游民
威 望:1
帖 子:57
专家分:17
注 册:2006-5-31
收藏
得分:0 

你用自己的代码放在别人的机器上边运行,首先要保证应用服务器和数据库服务器保持联系。
再一个是你发布项目的时候是不是把jar给顺便发布了。


锲而不舍。自信自强。
2007-11-12 10:07
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
數據庫連接的問題。jar包用戶名密碼都可能有錯﹗

我的网站 http://www.
2007-11-12 18:38
快速回复:一个连接数据库的问题,愁死我了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033022 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved