SSM框架使用通用mapper教程

配套教程源码,点击链接直接下载
通用mapper源码,点击下载

使用通用mapper的优点

通用mapper是mybatis的一个插件,传统的mybatis需要使用创建dao层,mapper.xml,和实体类,但是一旦使用了通用mapper之后,只要创建实体类就可以与数据库进行数据库查询数据.

第一步,引入依赖

版本控制
<mapper.version>4.0.0-beta3</mapper.version>
坐标
 <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>${mapper.version}</version>
        </dependency>

第二步修改applicationcontext.xml

在这里插入图片描述

使用传统的mybatis的配置文件与通用mapper的通用文件知识一个包引入的差别,其他都是一样的.

第三步 dao层(也叫mapper层)接口继承mapper接口

只有dao层接口继承了通用mapper接口就可以实现通用mapper的方法,以后就再也不用管mapper.xml了,也不用写方法了,开发只要关心service和controller就Ok了.
在这里插入图片描述

第四步:给实体类加注释

注释解析:

@Table 注解
作用:建立实体类和数据库表之间的对应关系。
默认规则:实体类类名首字母小写作为表名。
用法:在@Table 注解的 name 属性中指定目标数据库表的表名

在这里插入图片描述

@Column 注解
作用:建立实体类字段和数据库表字段之间的对应关系。
默认规则:
实体类字段:驼峰式命名
数据库表字段:使用“_”区分各个单词
用法:在@Column 注解的 name 属性中指定目标字段的字段名

在这里插入图片描述

@Id 注解
通用 Mapper 在执行 xxxByPrimaryKey(key)方法时,有两种情况。
情况 1:没有使用@Id 注解明确指定主键字段
情况 2:使用@Id 主键明确标记和数据库表中主键字段对应的实体类字段。

在这里插入图片描述

4@GeneratedValue 注解
作用:让通用 Mapper 在执行 insert 操作之后将数据库自动生成的主键值回写到实体类对象中。

自增主键用法:
在这里插入图片描述
序列主键用法:
在这里插入图片描述
应用场景:购物车结账

  • 增加商品销量…  减少商品库存…  生成订单数据→封装到 Order 对象中→保存 Order 对象→数据库自动生成主键
    值→回写到实体类对象 Order 中
  • 生成一系列订单详情数据→List→在每一个 OrderItem 中设置
    Order 对象的主键值作为外键→批量保存 List ……
@Transient 主键
作用:用于标记不与数据库表字段对应的实体类字段。
@Transient
private String otherThings; //非数据库表中字段

有时候遇到了前端传递过来的传递过来的日期,不能直接接收,可以使用@JsonFormat注解转换成指定格式的日期

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date date;

在这里插入图片描述
不过这里要引入jackson的jar包才可以使用

版本控制
<jackson.version>2.5.0</jackson.version>
坐标
<dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值