accountdao.java
来自「JDBC连数据库,这是一门很基初的技术,一定要好好研究」· Java 代码 · 共 72 行
JAVA
72 行
package com.allanlxf.jdbc.adv;
import java.sql.*;
import com.allanlxf.jdbc.util.ConnectionFactory;
import com.allanlxf.jdbc.util.JdbcUtil;
public class AccountDao
{
public void transfer(int fromId, int toId, double amount)
{
Connection con = null;
Statement st = null;
try
{
con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
st = con.createStatement();
String sql = "update sd0703_account set balance = balance + " + amount + " where id = " + toId;
st.executeUpdate(sql);
sql = "update sd0703_account set balance = balance - " + amount + " where id = " + fromId + " and balance > " + amount;
int rows = st.executeUpdate(sql);
if(rows == 0)
{
throw new Exception();
}
con.commit();
System.out.println("success!");
}catch(Exception e)
{
System.out.println("failed!");
try
{
con.rollback();
}catch(Exception r)
{
}
throw new RuntimeException(e.getMessage());
}finally
{
JdbcUtil.close(st, con);
}
}
public static void main(String[] args) throws Exception
{
// AccountDao accountDao = new AccountDao();
// accountDao.transfer(5172, 5173, 100000);
System.out.println("Connection.TRANSACTION_NONE : " + Connection.TRANSACTION_NONE);
System.out.println("Connection.TRANSACTION_READ_UNCOMMITTED : " + Connection.TRANSACTION_READ_UNCOMMITTED);
System.out.println("Connection.TRANSACTION_READ_COMMITTED : " + Connection.TRANSACTION_READ_COMMITTED);
System.out.println("Connection.TRANSACTION_REPEATABLE_READ : " + Connection.TRANSACTION_REPEATABLE_READ);
System.out.println("Connection.TRANSACTION_SERIALIZABLE : " + Connection.TRANSACTION_SERIALIZABLE);
Connection con = ConnectionFactory.getConnection();
DatabaseMetaData dbmd = con.getMetaData();
System.out.println("-------------------");
System.out.println(dbmd.supportsTransactionIsolationLevel(Connection.TRANSACTION_NONE));
System.out.println(dbmd.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_UNCOMMITTED));
System.out.println(dbmd.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED));
System.out.println(dbmd.supportsTransactionIsolationLevel(Connection.TRANSACTION_REPEATABLE_READ));
System.out.println(dbmd.supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE));
con.close();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?