Java框架学习_Mybatis(三)(增)增加用户、拿到用户主键

源代码:MybatisDemo增删改查


1、增加用户:
增加用户是需要相数据库提交的,所以增加了session.commit()语句,使用insert标签

还是先修改user.xml,在后面增加语句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 命名空间,用于隔离sql语句,后续会有重要作用 -->
<mapper namespace="user">


<!-- 
id:sql语句的唯一标识
parameterType:入参的数据类型
resultType:返回结果的数据类型
#{}:占位符,相当于?,里面的东西随便写
${value}:普通数据类型必须是value
 -->
	<insert id="MybatisInsert" parameterType="cn.nupt.pojo.User" >

			INSERT INTO `mybatis`.`user` (
			  `username`,
			  `birthday`,
			  `sex`,
			  `address`
			) 
			VALUES
			  (
			    #{username},
			    #{birthday},
			    #{sex},
			    #{address}
			  ) ;
			    
	</insert>


</mapper>

然后编写测试类MybatisInsert:

package cn.nupt.mybatis.test;

import java.util.Date;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import cn.nupt.mybatis.utils.SqlSessionFactoryUtils;
import cn.nupt.pojo.User;

public class MybatisInsert {
	@Test
	public void testInsert() {
		SqlSessionFactory sessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
		SqlSession session = sessionFactory.openSession();
		// String username, String sex, Date birthday, String address
		User user = new User(null, "吴彦祖", "男", new Date(), "南京");

		session.insert("MybatisInsert", user);
		session.commit();//需要提交,也可以自动提交sessionFactory.openSession(true);
		session.close();

	}

}

2、拿到用户主键:

有的时候级联sql语句需要拿到自增的主键,比如id等等,前面我们设置的主键是null,但是输出的时候需要拿到主键

方法:修改一下user.xml,在insert下面增加selectKey

<insert id="MybatisInsert" parameterType="cn.nupt.pojo.User" >

<!-- 
selectKey:主键返回
keyProperty:user中的主键
resultType:主键的数据类型
order:指定selectKey何时执行 
-->

<selectKey keyProperty="id" resultType="int" order="AFTER">
	select last_insert_id()
</selectKey>

或者,更简单点的,直接在insert标签上面加(这两个是冲突的,上面的设置了,这个就没用了):

<insert id="MybatisInsert" parameterType="cn.nupt.pojo.User"  useGeneratedKeys="true" keyProperty="id">


<!-- 
useGeneratedKeys:使用自增
keyProperty:配套使用,这里是user的主键,就是id 
-->

输出效果(就可以拿到我们插入的这一个用户的主键了):
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值