【JAVA高階】——吃透JDBC中的事務及事務的封裝
package com.cxyzxc.examples08;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class AccountDaoImpl {
// 新增:插入一個 Account 物件到資料庫中
public int insert(Account account,Connection connection) {
PreparedStatement preparedStatement = null;
String sql = "insert into account values(?,?,?,?)";
try {
preparedStatement = connection.prepareStatement(sql);
// 繫結引數
preparedStatement.setString(1, account.getCardNo());
preparedStatement.setString(2, account.getPassword());
preparedStatement.setString(3, account.getName());
preparedStatement.setDouble(4, account.getBalance());
// 執行 SQL
int result = preparedStatement.executeUpdate();
return result;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
// 刪除:根據卡號,刪除賬號
public int delete(String cardNo,Connection connection) {
PreparedStatement preparedStatement = null;
String sql = "delete from account where cardNo = ?;";
try {
preparedStatement = connection.prepareStatement(sql);
// 繫結引數
preparedStatement.setString(1, cardNo);
// 執行 SQL
int result = preparedStatement.executeUpdate();
return result;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
// 修改
public int update(Account account,Connection connection) {
PreparedStatement preparedStatement = null;
String sql = "update account set password = ?,name = ?,balance = ? where cardNo=?;";
try {
preparedStatement = connection.prepareStatement(sql);
// 繫結引數
preparedStatement.setString(1, account.getPassword());
preparedStatement.setString(2, account.getName());
preparedStatement.setDouble(3, account.getBalance());
preparedStatement.setString(4, account.getCardNo());
// 執行 SQL
int result = preparedStatement.executeUpdate();
return result;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
// 查詢單個
public Account select(String cardNo,Connection connection) {
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
Account account = null;
String sql = "select * from account where cardNo = ?";
try {
preparedStatement = connection.prepareStatement(sql);
// 繫結引數
preparedStatement.setString(1, cardNo);
// 執行 SQL
resultSet = 跟單網gendan5.compreparedStatement.executeQuery();
if (resultSet.next()) {
String cardNumber = resultSet.getString("cardNo");
String password = resultSet.getString("password");
String name = resultSet.getString("name");
double balance = resultSet.getDouble("balance");
account = new Account(cardNumber, password, name, balance);
}
return account;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// 查詢所有
public List<Account> selectAll(Connection connection) {
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
Account account = null;
List<Account> accountList = new ArrayList<Account>();
String sql = "select * from account;";
try {
preparedStatement = connection.prepareStatement(sql);
// 執行 SQL
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
String cardNumber = resultSet.getString("cardNo");
String password = resultSet.getString("password");
String name = resultSet.getString("name");
double balance = resultSet.getDouble("balance");
account = new Account(cardNumber, password, name, balance);
accountList.add(account);
}
return accountList;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2921663/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10.JDBC事務JDBC
- 分散式事務之資料庫事務與JDBC事務實現(一)分散式資料庫JDBC
- Spring事務(Transaction)管理高階篇一棧式解決開發中遇到的事務問題Spring
- MySQL高階12-事務原理MySql
- 從JDBC到ORM的事務實現JDBCORM
- 基於可靠訊息方案的分散式事務(二):Java中的事務分散式Java
- Spring事務專題(四)Spring中事務的使用、抽象機制及模擬Spring事務實現Spring抽象
- JAVA事務Java
- MongoDB 中的事務MongoDB
- MyBatis中的事務MyBatis
- Redis 中的事務Redis
- oracle 中的事務Oracle
- 事務及索引索引
- TransactionScope事務處理方法介紹及.NETCore中的注意事項NetCore
- MySQL 中的事務理解MySql
- Spring 中的事務管理Spring
- Spring Series---事務中JDBC是否自動提交解析SpringJDBC
- 詳解事務模式和Lua指令碼,帶你吃透Redis 事務模式指令碼Redis
- Redis 中的事務分析,Redis 中的事務可以滿足ACID屬性嗎?Redis
- Seata 無侵入式分散式事務服務的實現基石-JDBC篇分散式JDBC
- Spring中的事務提交事件Spring事件
- MySQL中的事務和MVCCMySqlMVC
- MySQL 中的事務詳解MySql
- (四)Spring中的事務管理Spring
- 談談Java事務Java
- 事務的使用
- 事務的概述
- 本地事務和分散式事務的區別分散式
- 分散式事務(一)—分散式事務的概念分散式
- Spring的事務管理(二)宣告式事務管理Spring
- 【封裝那些事】 缺失封裝封裝
- Spring事務專題(三)事務的基本概念,Mysql事務處理原理SpringMySql
- vitess兩階段提交事務Vite
- 十、Redis事務、事務鎖Redis
- 事務使用中如何避免誤用分散式事務分散式
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- React高階元件的那些事React元件
- 資料庫事務以及事務的四個特性資料庫