1. 程式人生 > >程式中資料庫的操作歷史和對資料庫操作的實體類注意事項

程式中資料庫的操作歷史和對資料庫操作的實體類注意事項

稍微瞭解一下程式中資料庫操作歷史吧!

1.首先是JDBC連線

2.c3p0

3.JPA

JPA是Java Persistence API的簡稱,中文名Java持久層API,是JDK 5.0註解或XML描述物件-關係表的對映關係,並將執行期的實體物件持久化到資料庫中.

4.hibernate

     實現了全自動的ORM(物件關係對映)

  1. 資料持久化:使用者只需要操作物件即可,內部將物件最終轉化為sql.
  2. 結果集對映:將sql執行後的結果自動的對映為物件 

 缺點:

  1. 耗費記憶體
  2. 會形成冗餘的sql,執行的效率較低
  3. 如果是關聯查詢,則需要冗餘的配置,同時需要學習hsql

5.Mybatis

   以半自動的ORM的方式操作資料庫

  1. sql語句需要自己手寫
  2. 能夠實現結果集對映.

6.通用Mapper等

    特點:基於Mybatis的,實現類單表的orm自動對映.

  以面向物件的方式操作單表.

  我們重點了解一下通用mapper,假設你們都會Mybatis

  通用Mapper底層原理

  1. 1.  定義公共的介面方法

    包含了單表操作的全部方法.CRUD等操作

  1. 將介面方法最終轉為Sql語句

    例子:以新增為例

    Sql:  insert into

表名(欄位名稱) values(值….)

  1. 3.  將物件與表一一對映

對   象名稱{物件的屬性} >>>>> 表名(欄位….)

  1. 最終形成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>