JAVA:数据库中一次请求要对数据库进行多次修改。我将多次修改放在一个try,catch中,这样妥吗

JAVA:数据库中一次请求要对数据库进行多次修改。我将多次修改放在一个try,catch中,这样妥吗,第1张

你好:这个是事物的处理,如果你这个事物是某个环节出现问题后要求整体回滚,可以放在一个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中查询,添加,删除语句,说的详细点,谢谢!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9420306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存