mybatis insert 插入标签

model

public class User implements Serializable {
    private Integer userId;
    private String userName;
    private String userAddress;
}

interface

public interface IUserDao {
    void saveUser(User user);
}

mybatis.xml

<insert id="saveUser" parameterType="com.itheima.domain.User"> 
  insert into user(username,birthday,sex,address)  
        values(#{username},#{birthday},#{sex},#{address}) 
</insert>

resultType 属性:指定结果集的类型
parameterType 属性:指定传入参数的类型
sql 语句中使用#{}字符:占位符,相当于原来 jdbc 部分所学的?

由于我们保存方法的参数是 一个 User 对象,此处要写 User 对象中的属性名称。
它用的是 ognl(Object Graphic Navigation Language) 表达式。 语法格式就是使用 #{对象.对象}的方式
#{user.username}它会先去找 user 对象,然后在 user 对象中找到 username 属性,并调用getUsername()方法把值取出来。但是我们在 parameterType 属性上指定了实体类名称,所以可以省略 user.
而直接写 username。

测试:

@Test 
public void testSave(){ 
  User user = new User(); 
  user.setUsername("modify"); 
  user.setAddress("北京市"); 
  user.setSex("男"); 
  userDao.saveUser(user); 
} 

拓展:获得新增用户id的返回值

新增用户后,同时还要返回当前新增用户的 id 值,因为 id 是由数据库的自动增长来实现的,所以就相
当于我们要在新增后将自动增长 auto_increment 的值返回。

<insert id="saveUser" parameterType="USER"> 
  <!-- 配置保存时获取插入的 id --> 
  <selectKey keyColumn="id" keyProperty="id" resultType="int"> 
    select last_insert_id(); 
  </selectKey> 
  insert into user(username,birthday,sex,address)  
  values(#{username},#{birthday},#{sex},#{address}) 
</insert> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值