Java是一種非常常用的編程語言,不僅可以進行普通的“增刪改查”操作,還可以進行記錄日志和回滾事務的操作。
記錄日志是一種非常重要的操作,可以幫助我們跟蹤程序中出現(xiàn)的錯誤,方便我們查找并解決問題。在Java中,我們可以使用log4j和logback等工具來進行日志記錄。以logback為例:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.info("This is info log."); logger.warn("This is warn log."); logger.error("This is error log."); } }
上述代碼中,我們首先導入了Logger和LoggerFactory兩個類。然后在MyClass類中創(chuàng)建了一個Logger實例,通過getLogger方法傳入當前類的Class對象,這樣我們就可以使用Logger記錄該類的日志了。在myMethod方法中,我們使用Logger的info、warn、error方法記錄不同級別的日志信息,這些信息會被記錄在配置好的日志文件中。
回滾事務也是開發(fā)中常用的操作,它可以幫助我們保證數(shù)據(jù)的完整性和一致性。在Java中,我們可以使用JDBC或者ORM框架(如Hibernate、Mybatis等)來進行事務的管理。以JDBC為例:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class MyClass { public void myMethod() throws SQLException { Connection conn = null; PreparedStatement ps = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "username", "password"); conn.setAutoCommit(false); ps = conn.prepareStatement("INSERT INTO user(name, age) VALUES(?, ?)"); ps.setString(1, "張三"); ps.setInt(2, 20); ps.executeUpdate(); ps.setNULL(1); ps.setInt(2, 30); ps.executeUpdate(); conn.commit(); } catch (SQLException e) { if(conn != null) { conn.rollback(); } } finally { if(ps != null) { ps.close(); } if(conn != null) { conn.close(); } } } }
上述代碼中,我們首先通過DriverManager獲取數(shù)據(jù)庫連接,并設置為手動提交事務。然后執(zhí)行兩條INSERT語句,在第二條語句中將name參數(shù)設置為null,故意造成錯誤。如果插入成功,我們則提交事務。如果插入失敗,則使用rollback方法回滾事務。最后在finally塊中關閉PreparedStatement和Connection對象。