DataSource

JDBC2.0提供了DataSource接口,它定義了資料庫連接配接的規範。它負責建立與資料庫的連接配接。當在應用程式中通路資料庫時,不必編寫連接配接資料庫的代碼,直接引用DataSource擷取資料庫的連接配接對象即可。
相關包
C3P0、Druid 等包實作了DataSource接口,使使用者可以通過簡單的方法擷取DataSource執行個體化對象。
DataSource擷取資料庫連接配接
DataSource建立多個資料庫連接配接,這些資料庫連接配接會儲存在資料庫連接配接池中,當需要資料庫連接配接時,直接從資料庫連接配接池中擷取空閑的資料庫連接配接,當程式通路資料庫結束時,資料庫連接配接會放回資料庫連接配接池中。
QueryRunner
SUN公司推出了Java DataBase Connectivity(JDBC) 接口,它定義了資料庫通路的标準規範。通過它可以對資料庫執行SQL語句,實作對資料庫的CRUD操作。
QueryRunner實作了對JDBC進行了簡單的封裝,它通過擷取DataSource獲得資料庫的連接配接,然後使用者可以通過它簡便地實作對資料庫的CRUD操作。
所屬Jar包
org.apache.commons.dbutils.QueryRunner;
QueryRunner初始化方法
1. 通過擷取DataSource進行初始化
QueryRunner runner2=new QueryRunner(dataSource);
2. 在每次執行SQL語句時,擷取Connection連接配接進行初始化
query.query(dataSource.getConnection(),"select * from account", new BeanListHandler<>(Account.class));
QueryRunner實作CRUD
API:
查詢:public <T> T query(String sql, ResultSetHandler<T> rsh, Object...params) throws SQLException
更新:public int update(String sql, Object...params)
ResultSetHandle接口:将查詢的資料封裝為實體類對象。
BeanListHandler類:實作了ResultSetHandler接口,可以将多個結果封裝在實體類類型的List集合中。
BeanHandler類:實作了ResultSetHandler,将一個查詢結果封裝在實體類對象中。
示例:
1.查詢多條資訊
List<Account> list=query.query("select * from account", new BeanListHandler<>(Account.class));
2.通過id,查詢一條資訊
Account account=query.query("select * from account where id=?", new BeanHandler<>(Account.class), id);
3.插入資料
query.update("insert into account(name, money) values(?,?)", account.getName(), account.getMoney());
4.更新資料
query.update("update account set name=?, money=? where id=?", account.getName(),account.getMoney(),account.getId());
5.根據id删除資料
query.update("delete from account where id=?", id);
JdbcTemplate
它是 spring 架構中提供的一個對象,是對原始 Jdbc API 對象的簡單封裝,以實作對資料庫的CRUD操作。
JdbcTemplate依賴的包
mysql.mysql-connector-java.8.0.16
org.springframework.spring-context.5.2.9.RELEASE
org.springframework.spring-test.5.2.9.RELEASE
org.springframework.spring-jdbc.5.2.9.RELEASE
org.springframework.spring-tx.5.2.9.RELEASE