传统的mybatis需要在映射文件中写sql,由于业务的不同造成sql语句不同,而无法通用,开发人员工作量巨大,同时也不易维护。这个时候可以尝试通用mapper.
官网:https://www.oschina.net/p/mybatis-mapper
maven坐标:
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mapper</artifactId>
<version>3.4.0</version>
</dependency>
JPA注解
JPA全称Java Persistence API. JPA通过JDK5.0注解或XML描述对象 - 关系表的映射关系,并将运行期的对象持久化到数据中。 Sun引入新的JPA ORM规范出于两个原因。其一:简化现有Java EE和Java SE应用开发工作。其二:Sun希望整合ORM技术。在POJO实体对象上加JPA注解,可以实现类和数据库之间的映射。
@Table(name = "数据库表名")
标识对应的数据库表@Transient
忽略类中指定字段不参与数据库映射关系@Id
标识主键,可以在多个属性字段上标识该注解,用以表示复合主键@GeneratedValue(strategy = GenerationType.IDENTITY)
自增@Column(name="数据库表字段名")
当属性和字段不一致,设置映射关系.可以在mybatis的配置xml文件中配置<setting name="mapUnderscoreToCamelCase" value="true"/>
来实现自动驼峰映射
(1).表名默认使用类名,按驼峰规则,下划线后字母自动大写,如UserInfo对应表名user_info
(2).当表名和类名不对应时,使用@Table(name=”数据库表名”)进行指定。
(3). 属性和字段名不对应时,使用@Column(name=”数据库表字段名”)进行制定。
(4). 当不是表的属性时,使用@Transient可以忽略此属性的数据库映射
(5). 强烈建议设置主键@Id。 如果没有设置主键,所有字段作为一个联合主键,这种效率非常低。
(6). 实体类可以继承使用,注解也将继承。
(7). 基于基本类型, 如int作为实体字段时会有默认值0, 而且无法消除,所以实体类中强烈建议不要使用基本数据类型,用包装类型取而代之。
(8). 主键策略,支持序列、UUID、主键自增三种方式,其中序列和UUID可以配置多个,主键自增只配置一个。
@GeneratedValue(strategy=GenerationType.IDENTITY) 主键自增长策略
@GeneratedValue(strategy=GenerationType.Auto) 默认策略,类似于hibernate的native策略,生成方式取决于底层的数据库。
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator=”seq_u”) 指定”序列”策略,使用于Oracle,其中generator表示序列的名字。
@GeneratedValue(generator=”UUID”) 可以用任意字符串类型长度超过32位的字段
第一步:创建java maven工程
添加依赖jar包
引用块内容