你好:这个是事物的处理,如果你这个事物是某个环节出现问题后要求整体回滚,可以放在一个try里面,出问题后rollback;
如果是只关心某个环节,对出现问题后单独处理那么可以分开来做,再就是多次修改的话,尽量用java先处理后,最后完成后统一一次提交比较好。
创建一个java project;对着project右键->属性 然后就 如图所示:导入mysql-connector-java-5115-binjar!然后就可以添加代码来测试了
下面这个嘛 还有界面的
import javasql;
import javaxswing;
import javaawt;
import javaawtevent;
import javautil;
public class Login extends JFrame {
private Connection connection;
private Statement statement;
private ResultSet resultSet;
private ResultSetMetaData rsMetaData;
//GUI变量定义
private JTable table;
private JTextArea inputQuery;
private JButton submitQuery,deleteQuery,insertQuery,alterQuery;
public Login()
{
//Form的标题
super( "输入SQL语句,按查询按钮查看结果。" );
String url = "jdbc:mysql://localhost:3306/player";
String username = "root";
String password = "mima1231";
//加载驱动程序以连接数据库
try {
ClassforName( "orggjtmmmysqlDriver" );
connection = DriverManagergetConnection(
url, username, password );
}
//捕获加载驱动程序异常
catch ( ClassNotFoundException cnfex ) {
Systemerrprintln(
"装载 JDBC/ODBC 驱动程序失败。" );
cnfexprintStackTrace();
Systemexit( 1 ); // terminate program
}
//捕获连接数据库异常
catch ( SQLException sqlex ) {
Systemerrprintln( "无法连接数据库" );
sqlexprintStackTrace();
Systemexit( 1 ); // terminate program
}
//如果数据库连接成功,则建立GUI
//SQL语句
String test="SELECT FROM user";
inputQuery = new JTextArea( test, 4, 30 );
submitQuery = new JButton( "查询" );
//Button事件
submitQueryaddActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
getTable();
}
}
);
insertQuery = new JButton("插入");
deleteQuery = new JButton("删除");
alterQuery = new JButton("修改");
JPanel topPanel = new JPanel();
JPanel buttonPanel = new JPanel();
topPanelsetLayout( new BorderLayout() );
//将"输入查询"编辑框布置到 "CENTER"
topPaneladd( new JScrollPane( inputQuery), BorderLayoutCENTER );
//将"提交查询"按钮布置到 "SOUTH"
buttonPanelsetLayout(new GridLayout(1,4));
buttonPaneladd(submitQuery);
insertQueryaddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String str = inputQuerygetText();
boolean flag = false;
try {
// Statement stat = null;
PreparedStatement pstmt = connectionprepareStatement(str);
pstmtexecuteUpdate();
flag = true;
pstmtclose();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1printStackTrace();
}
if(flag)JOptionPaneshowMessageDialog(null, "数据插入成功");
else JOptionPaneshowMessageDialog(null, "数据插入失败");
}
});
buttonPaneladd(insertQuery);
deleteQueryaddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String str = inputQuerygetText();
boolean flag = false;
try {
// Statement stat = null;
Statement pstmt = connectioncreateStatement();
pstmtexecuteUpdate(str);
pstmtclose();
flag = true;
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1printStackTrace();
}
if(flag)JOptionPaneshowMessageDialog(null, "数据删除成功");
else JOptionPaneshowMessageDialog(null, "数据删除失败");
}
});
buttonPaneladd(deleteQuery);
alterQueryaddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String str = inputQuerygetText();
boolean flag = false;
try {
Statement pstmt = connectioncreateStatement();
pstmtexecuteUpdate(str);
flag = true;
pstmtclose();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1printStackTrace();
}
if(flag)JOptionPaneshowMessageDialog(null, "数据修改成功");
else JOptionPaneshowMessageDialog(null, "数据修改失败");
}
});
buttonPaneladd(alterQuery);
topPaneladd( buttonPanel, BorderLayoutSOUTH );
table = new JTable();
Container c = getContentPane();
csetLayout( new BorderLayout() );
//将"topPanel"编辑框布置到 "NORTH"
cadd( topPanel, BorderLayoutNORTH );
//将"table"编辑框布置到 "CENTER"
cadd( table, BorderLayoutWEST );
getTable();
setSize( 500, 300 );
//显示Form
show();
}
private void getTable()
{
try {
//执行SQL语句
String query = inputQuerygetText();
statement = connectioncreateStatement();
resultSet = statementexecuteQuery( query );
//在表格中显示查询结果
displayResultSet( resultSet );
}
catch ( SQLException sqlex ) {
sqlexprintStackTrace();
}
}
private void displayResultSet( ResultSet rs )
throws SQLException
{
//定位到达第一条记录
boolean moreRecords = rsnext();
//如果没有记录,则提示一条消息
if ( ! moreRecords ) {
JOptionPaneshowMessageDialog( this,
"结果集中无记录" );
setTitle( "无记录显示" );
return;
}
Vector columnHeads = new Vector();
Vector rows = new Vector();
try {
//获取字段的名称
ResultSetMetaData rsmd = rsgetMetaData();
for ( int i = 1; i <= rsmdgetColumnCount(); ++i )
columnHeadsaddElement( rsmdgetColumnName( i ) );
//获取记录集
do {
rowsaddElement( getNextRow( rs, rsmd ) );
} while ( rsnext() );
//在表格中显示查询结果
table = new JTable( rows, columnHeads );
JScrollPane scroller = new JScrollPane( table );
Container c = getContentPane();
cremove(1);
cadd( scroller, BorderLayoutCENTER );
//刷新Table
cvalidate();
}
catch ( SQLException sqlex ) {
sqlexprintStackTrace();
}
}
private Vector getNextRow( ResultSet rs,
ResultSetMetaData rsmd )
throws SQLException
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmdgetColumnCount(); ++i )
currentRowaddElement( rsgetString( i ) );
//返回一条记录
return currentRow;
}
public void shutDown()
{
try {
//断开数据库连接
connectionclose();
}
catch ( SQLException sqlex ) {
Systemerrprintln( "Unable to disconnect" );
sqlexprintStackTrace();
}
}
public static void main( String args[] )
{
final Login app =
new Login();
appaddWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
appshutDown();
Systemexit( 0 );
}
}
);
}
}
以上就是关于JAVA:数据库中一次请求要对数据库进行多次修改。我将多次修改放在一个try,catch中,这样妥吗全部的内容,包括:JAVA:数据库中一次请求要对数据库进行多次修改。我将多次修改放在一个try,catch中,这样妥吗、怎么用JAVA语句在Mysql中查询,添加,删除语句,说的详细点,谢谢!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)