mybatis基础入门

mybatis入门:

这里写图片描述

“#{}” 和“${}”的区别

这里写图片描述

这里写图片描述

Mapper代理的四个条件:

这里写图片描述
这里写图片描述

这里写图片描述

Mybatis分别向MySQL和Oracle中插入数据返回主键问题总结

一.MYSQL:
1、在映射文件中配置(本例中是user.xml文件):
注:方法一,必须是在能够支持主键自增的数据库
这里写图片描述
通过修改sql映射文件,可以将mysql自增主键返回:
这里写图片描述
添加selectKey实现将主键返回
keyProperty:返回的主键存储在pojo中的哪个属性
order:selectKey的执行顺序,是相对与insert语句来说,由于mysql的自增原理执行完insert语句之后才将主键生成,所以这里selectKey的执行顺序为after
resultType:返回的主键是什么类型
LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。

2、在数据库连接信息属性文件中配置(db.properties):

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

3、编写测试代码

@Test
    public void addUser(){
        SqlSession session = sqlSessionFactory.openSession();

        User user = new User();
        user.setUsername("张三");
        user.setBirthday(new Date());
        user.setAddress("北京");
        user.setSex("1");
        session.insert("addUser", user);
        if (i>0){
            System.out.println(user.getId());
        }
//      mysql 是默认不提交的, 必须手动的提交,否则就会回滚
        session.commit();

        session.close();
    }

补:5.7.4Mysql使用 uuid实现主键

<insert  id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<selectKey resultType="java.lang.String" order="BEFORE" 
keyProperty="id">
select uuid()
</selectKey>
insert into user(id,username,birthday,sex,address) 
         values(#{id},#{username},#{birthday},#{sex},#{address})
</insert>
注意这里使用的order是“BEFORE”

需要增加通过select uuid()得到uuid值

猜你喜欢

转载自blog.csdn.net/qq_17044239/article/details/81673834