程式中資料庫的操作歷史和對資料庫操作的實體類注意事項
稍微瞭解一下程式中資料庫操作歷史吧!
1.首先是JDBC連線
2.c3p0
3.JPA
JPA是Java Persistence API的簡稱,中文名Java持久層API,是JDK 5.0註解或XML描述物件-關係表的對映關係,並將執行期的實體物件持久化到資料庫中.
4.hibernate
實現了全自動的ORM(物件關係對映)
- 資料持久化:使用者只需要操作物件即可,內部將物件最終轉化為sql.
- 結果集對映:將sql執行後的結果自動的對映為物件
缺點:
- 耗費記憶體
- 會形成冗餘的sql,執行的效率較低
- 如果是關聯查詢,則需要冗餘的配置,同時需要學習hsql
5.Mybatis
以半自動的ORM的方式操作資料庫
- sql語句需要自己手寫
- 能夠實現結果集對映.
6.通用Mapper等
特點:基於Mybatis的,實現類單表的orm自動對映.
以面向物件的方式操作單表.
我們重點了解一下通用mapper,假設你們都會Mybatis
通用Mapper底層原理
- 1. 定義公共的介面方法
包含了單表操作的全部方法.CRUD等操作
- 將介面方法最終轉為Sql語句
例子:以新增為例
Sql: insert into
- 3. 將物件與表一一對映
對 象名稱{物件的屬性} >>>>> 表名(欄位….)
- 最終形成sql
Sql:insert into 表名(欄位…) values(物件的屬性值…….)
使用通用Mapper對資料庫進行操作,要對實體類進行一些操作:
1.要在實體類 名上加上@Table註解,並加上表名,還要定義主鍵,以及自增@GeneratedValue(Strategy=GenerationType.IDENTITY)
如果表不自增的話,就不要加@GeneratedValue(Strategy=GenerationType.IDENTITY)了
2.定義操作資料庫的Dao層,繼承SysMapper<Item>,這裡要引入通用mapper的.jar依賴。只能進行普通的增刪改查
複雜的話,還是自己寫sql語句吧!
<!-- 通用Mapper -->
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mapper</artifactId>
<version>${mapper.version}</version>
</dependency>