我想把数据源去掉,用netbeans连接access数据库,然后把数据库中的表内容显示到swing中怎么实现?网上也有一些连接例子,比如
import java.sql.*;
public class Access{
public static void main(String args[]) throws Exception{
String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\projects\\demo.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(strurl) ;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from mcp_swty_player");
while(rs.next())
System.out.println(rs.getString("player_mobile"));
rs.close();
stmt.close();
conn.close();
}
} 我现在实现的方法是建立实体类,持久性,jframe窗口,添加控件
去掉数据源后 就会提示错误,我也不知道怎么用这段代码?
急用!!!!!!!
import java.sql.*;
public class Access{
public static void main(String args[]) throws Exception{
String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\projects\\demo.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(strurl) ;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from mcp_swty_player");
while(rs.next())
System.out.println(rs.getString("player_mobile"));
rs.close();
stmt.close();
conn.close();
}
} 我现在实现的方法是建立实体类,持久性,jframe窗口,添加控件
去掉数据源后 就会提示错误,我也不知道怎么用这段代码?
急用!!!!!!!
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/**
*
* @author Administrator
*/
public class DB{ public DB() {
this.init();
}
//将Connection,Statament作为类属性,方便后边直接使用
Connection con;
Statement stm; public void init() {
try {
//加载jdbc-odbc驱动,并且捕获异常
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("加载驱动成功");
} catch (ClassNotFoundException ex) {
System.out.println("驱动加载失败");
}
//下边这句就是今天的精彩部分了,我们通过这句就能完成直接连接到文件的目的
String url = "jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=数据库文件绝对路径或相对路径"; try {
con = DriverManager.getConnection(url, "", "");
System.out.println("建立连接成功");
} catch (SQLException ex1) {
System.out.println("建立连接失败");
}
try {
stm = (Statement) con.createStatement();
} catch (SQLException ex2) {
System.out.println("创建控制器失败");
}
//System.out.println(file.getAbsolutePath());
} //执行delete insert updata 抛出异常
public int exec(String s) throws SQLException {
return stm.executeUpdate(s);
} //执行查询 抛出异常
public ResultSet query(String s) throws SQLException {
return stm.executeQuery(s);
} /**
* 关闭数据库连接
* @throws java.sql.SQLException
*/
public void closeDB() {
try {
stm.close();
} catch (SQLException ex) {
}
try {
con.close();
} catch (SQLException ex) {
}
}
}这段代码跟LZ代码差不多。只不过重用性更强些,且不用配置数据源,是一种直连方式。
下面给你用法。假设数据库有张user表,结构如下。
id 自动编号
u_name 文本
假设你有实体类 User 与 user 表相对应。
那么可以在某业务类这样获取user表数据:
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class UserDAO () {
public List findAll() { List list = new ArrayList();
String sql = "SELECT * FROM user";
DB db = new DB();
try {
ResultSet rs = db.query(sql); // 执行查询 while (rs.next()) {
User user = new User ();
b.setId(rs.getLong("id"));
b.setName(rs.getString("u_name"));
list.add(b);
}
} catch (SQLException ex) { } finally {
db.closeDB(); // 关闭数据库连接
}
return list;
}
}在显示层可以调用 UserDAO 的 findAll () 方法来获取 user 表的数据,并遍历 List,将数据显示在JFrame 的各控件中。
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );去连接数据库,这种就是连接池的做法,不知道是否适合你做
我将表格绑定到list,跟你说的遍历list一样吗??
while (rs.next()) {
User user = new User ();
b.setId(rs.getLong("id"));
b.setName(rs.getString("u_name"));
list.add(b);
}不知道你问的是不是这个意思。