mybatis insert返回主键_mybatis学习笔记(持续更新中……)

mybatis框架原理

mybatis是一个半自动化的持久层的框架,可以自己写sql,

mybatis可以将向preparedstate中的输入的参数自动进行输入映射,也可以将查询结果,灵活的映射成java对象(输出映射)。

框架

sqlMapConfig.xml(是mybatis的全局配置文件),配置了数据源、事务等mybatis运行环境。

配置映射(配置sql语句)

mapper.xml

sqlSessionFactory(会话工厂)(根据配置文件可以创建工厂)

作用:创建sqlSeaaion

sqlSession(会话) (是一个接口,面向用户(程序员)接口)

作用:操作数据库(发出sql增删改查)

Executor(执行器)(是一个接口,基本执行器,缓存执行器)

作用:sqlSession内部通过执行器操作数据库

mappered statement(底层封装对象)

作用:对操作数据库存储封装包括:sql语句、输入参数、输出结果类型

mysql

-----------

输入参数类型:java简单类型、hashmap、pojo自定义

输出结果类型:java简单类型、hashmap、pojo自定义

------------

0a7c3536e142fc9992ad0d6037959876.png

resultMap

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间做一个映射关系。我们希望每个数据库都具备良好的第三范式或 BCNF 范式,可惜它们不总都是这样。 如果有一个独立且完美的数据库映射模式,所有应用程序都可以使用它,那就太好了,但可惜也没有。 ResultMap 就是 MyBatis 对这个问题的答案。

1、定义resultMap

2、使用resultMap,作为statement的输出映射类型

type:最后映射的java对象类型,可以使用别名

id是唯一标识,column查询出来的列名,property所指定的pojo类型,最终将column和property一一对应

result:对普通列的定义

 select ur.id id,e.account_id accountId, e.name nickname, ur.role_id roleId, r.role_name roleName from sys_user_role ur left join sys_role r on r.id=ur.role_id left join t_ath_permission_employee e on ur.user_id=e.account_id order by ur.id desc LIMIT #{offSet}, #{pageRow}

mysql自增主键返回

在insert提交之前,自动生成一个自增主键

通过mysql函数获取到刚插入记录的自增主键:last_insert_id()

在insert之后调用此函数。

  insert into Author (username, password, email, bio) values 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值