📄 eventframe.java
字号:
package save;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.dx.sql.dataset.*;
import com.borland.dbswing.*;
import com.borland.dx.dataset.*;
import java.sql.*;
public class EventFrame extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
Database database1 = new Database();
QueryDataSet queryDataSet1 = new QueryDataSet();
TableScrollPane tableScrollPane1 = new TableScrollPane();
JdbTable jdbTable1 = new JdbTable();
JdbNavToolBar jdbNavToolBar1 = new JdbNavToolBar();
QueryResolver queryResolver1 = new QueryResolver();
//声明SQL语句执行类
Statement stmt;
public EventFrame() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("截取存储操作事件");
//建立与SQLServer的books数据库的联接
database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor(
"jdbc:microsoft:sqlserver://bemyfriend:1433;DatabaseName=books", "sa",
"", false, "com.microsoft.jdbc.sqlserver.SQLServerDriver"));
//取得bookcategory数据表的记录
queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(
database1, "select * from bookcategory", null, true, Load.ALL));
//设置数据更新类
queryDataSet1.setResolver(queryResolver1);
//设置QueryResolver类的数据源
queryResolver1.setDatabase(database1);
//根据主键更新
queryResolver1.setUpdateMode(com.borland.dx.dataset.UpdateMode.KEY_COLUMNS);
//设置工具栏和表格的数据源
jdbNavToolBar1.setDataSet(queryDataSet1);
jdbTable1.setDataSet(queryDataSet1);
//取得数据库连接
Connection conn = database1.getJdbcConnection();
//创建SQL语句执行类
stmt = conn.createStatement();
//删除工具栏的保存按钮的事件接收器
jdbNavToolBar1.getSaveButton().removeActionListener(jdbNavToolBar1);
//添加工具栏的保存按钮的事件
jdbNavToolBar1.getSaveButton().addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
//添加数据操作接收器
queryResolver1.addResolverListener(new com.borland.dx.dataset.ResolverAdapter() {
//删除前事件
public void deletingRow(ReadWriteRow row, ResolverResponse response)
throws DataSetException {
queryResolver1_deletingRow(row, response);
}
//添加前事件
public void insertingRow(ReadWriteRow row, ResolverResponse response)
throws DataSetException {
queryResolver1_insertingRow(row, response);
}
//更新前事件
public void updatingRow(ReadWriteRow row, ReadRow oldRow, ResolverResponse response)
throws DataSetException{
queryResolver1_updatingRow(row, oldRow, response);
}
});
contentPane.add(tableScrollPane1, BorderLayout.CENTER);
contentPane.add(jdbNavToolBar1, BorderLayout.NORTH);
tableScrollPane1.getViewport().add(jdbTable1, null);
}
protected void processWindowEvent(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
//删除前事件
void queryResolver1_deletingRow(ReadWriteRow readWriteRow,
ResolverResponse resolverResponse) throws
DataSetException {
//取得id
int id = readWriteRow.getInt("id");
System.out.println("截取删除事件:删除" + id + "记录.");
//不使用QueryResolver类执行删除操作
resolverResponse.ignore();
//使用java.sql类包的类执行删除操作
try{
String sql = "delete from bookcategory where id = " + id;
//加入删除Sql语句
stmt.addBatch(sql);
}catch(Exception ex){
ex.printStackTrace();
}
}
//添加前事件
void queryResolver1_insertingRow(ReadWriteRow readWriteRow, ResolverResponse resolverResponse)
throws DataSetException{
int id = readWriteRow.getInt("id");
String categoryName = readWriteRow.getString("categoryName");
String categoryDescription = readWriteRow.getString("categoryDescription");
System.out.println("截取添加前事件:添加" + categoryName);
//不使用QueryResolver类执行添加操作
resolverResponse.ignore();
//使用java.sql类包的类执行添加操作
try{
String sql = "insert into bookcategory values(" + id + ", '" + categoryName
+ "', '" + categoryDescription + "')";
//加入添加Sql语句
stmt.addBatch(sql);
}catch(Exception ex){
ex.printStackTrace();
}
}
//更新前方法
void queryResolver1_updatingRow(ReadWriteRow row, ReadRow oldRow, ResolverResponse response)
throws DataSetException{
//取得原来的序号
int id = oldRow.getInt("id");
String categoryName = row.getString("categoryName");
String categoryDescription = row.getString("categoryDescription");
System.out.println("截取更新前事件:更新" + categoryName);
//不使用QueryResolver类执行更新操作
response.ignore();
//使用java.sql类包的类执行更新操作
try{
String sql = "update bookcategory set categoryName = '" + categoryName +
"', categoryDescription = '"
+ categoryDescription + "' where id = " + id;
stmt.addBatch(sql);
}catch(Exception ex){
ex.printStackTrace();
}
}
//保存按钮的单击方法
void jButton1_actionPerformed(ActionEvent e) {
try {
//向数据提交数据,激活数据操作的事件
database1.saveChanges(queryDataSet1);
//批量执行sql语句
stmt.executeBatch();
//显示更新后的数据集
queryDataSet1.refresh();
}
catch(Exception dse){
System.out.println(dse);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -