视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
java的swing、jtable、连接和操作Access
2020-11-09 15:24:52 责编:小采
文档


java操作access程序这个是源代码 java写windows的程序确实比较不爽 这些代码是给一个兄弟的不会写程序的表妹做的作业(他的要求是必须符合菜鸟的标准:),于是代码就这样了 见谅啦!不过功能是有滴 关键代码 Code // LoadJDBCdriver Class.forName( " sun.jdb

java操作access程序这个是源代码

java写windows的程序确实比较不爽 这些代码是给一个兄弟的不会写程序的表妹做的作业(他的要求是必须符合菜鸟的标准:……),于是代码就这样了 见谅啦!不过功能是有滴

关键代码

Code


// Load JDBC driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

/* 这里的数据库的url一定要写正确,这是关键,其中DBQ可以绝对路径,也可以是相对路径,为了体现数据存储路径的/性,你可以将数据库copy到不同的位试一下 */
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=access\\test.mdb";

Connection con = DriverManager.getConnection(dbUrl, "",
"");
Statement state = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// 执行SQL语句
String sql = "select * from score";
ResultSet rs = state.executeQuery(sql);

displayResultSet(rs);
rs.close();
state.close();
con.close();

Code
/***************************************************************************
* 将数据库中取出的结果以table形式显示
**************************************************************************/
private void displayResultSet(ResultSet rs) throws SQLException {
boolean moreRecords = rs.next(); // 定位到达第一条记录
if (!moreRecords) {
JOptionPane.showMessageDialog(null, "结果集中无记录", "无记录",
JOptionPane.INFORMATION_MESSAGE);
return;
}

Vector rows = new Vector();
Vector columnHeads = new Vector();
try {
ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
columnHeads.addElement(rsmd.getColumnName(i)); // 获得列名(将列名存放至向量columnHeads)

do {
rows.addElement(getNextRow(rs, rsmd));
}
while (rs.next()); // 利用循环获得所有记录
jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图
jTable.setSize(new Dimension(383, 81));
JScrollPane scroller = new JScrollPane(jTable);// 创建带有滚动条的面板,并将表格视图加入
Container c = getContentPane(); // 获取溶器
// c.remove(2); //
// 从溶器中移除指定控件(本窗体中有二级面板有两个,第一个存放文本域及按钮,第二个存放表格视图,故移除1)
c.add(scroller, BorderLayout.CENTER); // 将面板重新加入溶器中
c.validate(); // 验证此容器及其所有子组件
} catch (SQLException e) {
e.printStackTrace();
}
}

/**
* 取下一行
*/
private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)
throws SQLException {
Vector currentRow = new Vector(); // 定义一个向量,用于存放记录
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
currentRow.addElement(rs.getString(i)); // 获取记录
return currentRow; // 返回记录
}

以上代码实现连接access并将取出数据显示在JTable控件上……

选择JTable行:jTable.getSelectedRow() != -1用于判断是否有选中行;(jTable.getModel().getValueAt(jTable
.getSelectedRow(), 0)).toString();用于取出选择行的某单元值(0表示该行的第一列以此类推)

if (jTable.getSelectedRow() != -1) {
String ID = (jTable.getModel().getValueAt(jTable
.getSelectedRow(), 0)).toString();

用于插入acces数据时

"insert into score (name,language,math,english) values(……)“ 标红色的表名后必须加空格,不然无法插入!

下载本文
显示全文
专题