补充:我没有ACCESS,我用的是odbc直接连接mdb文件,你可以用ACCESS同时操作mdb文件.如果要用到ACCESS,请修改bean中的属性值.
你的东西做的很好
只是数据库连接出了问题
这是我为你的工程写的一个关于数据库的bean
提供了一系列的数据操作方法
该类已经测试成功,只要添加到你的工程里就可以了。希望对你有用。
package lg_cidian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 数据库操作的JavaBean类,用于对数据库的查询与更新的实现;
* 该类默认的连接的数据库为odbc连接本地数据文件;
* 该类主要为用户一系列的数据操作提供底层服务.
*
* @version 1.0 2010/06/13
* @author Kiwwor
* @see UserData
*/
public class Access {
//驱动程序类
private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
//连接数据库url
private String connectionUrl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=en.mdb";
//用户名
private String user = "";
//用户密码
private String password = "";
//数据库连接对象
private Connection connection = null;
//数据库对象
private Statement statement = null;
//数据集对象
private ResultSet resultSet = null;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getConnectionUrl() {
return connectionUrl;
}
public void setConnectionUrl(String connectionUrl) {
this.connectionUrl = connectionUrl;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConnection() {
return connection;
}
public void setConnection(Connection connection) {
this.connection = connection;
}
public Statement getStatement() {
return statement;
}
public void setStatement(Statement statement) {
this.statement = statement;
}
public ResultSet getResultSet() {
return resultSet;
}
public void setResultSet(ResultSet resultSet) {
this.resultSet = resultSet;
}
/**
* 获取一个连接对象,默认连接对象本地数据库qq。
* @return 连接是否成功
*/
public boolean createConnection() {
boolean b = false;
try {
Class.forName(driver);
connection = DriverManager.getConnection(connectionUrl, user, password);
b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 更新数据库
* @param sql 更新的sql语句
* @return 更新是否成功
*/
public boolean update(String sql) {
boolean b =false;
try {
statement = connection.createStatement();
statement.execute(sql);
b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 执行查询,将查询的结果集给resultmentSet。
* @param sql 查询的sql语句
*/
public void query(String sql) {
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 检测结果集是否为空
* @return true为存在记录
*/
public boolean next() {
boolean b = false;
try {
if (resultSet.next()) b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 获得结果集中当前行columnLabel的记录
* @param columnLabel 当前行要查询的列名.
* @return 查询的列值
*/
public String getValue(String columnLabel) {
String value = null;
try {
if (resultSet != null) value = resultSet.getString(columnLabel);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
/**
* 获得结果集中当前行columnIndex的记录
* @param columnIndex 当前行查询的列索引,第一列为1,第二列为2...
* @return 查询的列值
*/
public String getValue(int columnIndex) {
String value = null;
try {
if (resultSet != null) value = resultSet.getString(columnIndex);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
/**
* 关闭连接对象
*/
public void closeConnection() {
try {
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据库对象
*/
public void closeStatement() {
try {
if (statement != null) statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭结果集
*/
public void closeResultSet() {
try {
if (resultSet != null) resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据连接对象,数据库对象和数据结果集对象。
*/
public void closeAll() {
closeResultSet();
closeStatement();
closeConnection();
}
/**
* 测试该类函数。
* @param args
*/
public static void main(String[] args) {
Access db = new Access();
if (db.createConnection()) {
System.out.println("测试数据库连接成功.");
}
db.closeAll();
}
}