程序中数据库的操作历史和对数据库操作的实体类注意事项

稍微了解一下程序中数据库操作历史吧!

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>

  

转载于:https://www.cnblogs.com/l-x-x-y-d-j/p/10240932.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值