添加一个用户:
User user2 = new User();
user2.setName("王二");
user2.setAddress("中国");
user2.setBalance(1000);
user2.setSex("男");
int i = session.insert("test.add", user2);
session.commit();
session.close();
问题1:在添加一个用户的之后,如果id是用自动递增或者UUID的话,添加一条记录订单的时候通过user.getId()无法获得这个用户的id,只有配置一下信息,才能获得这个id
uuid是先 生成主键再生成订单 自动递增是先生成订单,再生成id
<insert id="add" parameterType="cn.hd.pojo.User">
<selectKey keyColumn="id" keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT into user(name,address,sex,balance) values (#{name},#{address},#{sex},#{balance})
</insert>
keyColumn:是数据库表的id,keyProperty是对应实体类的属性。
order有两个属性,一个AFTER,一个是BEFORE,AFTER是先生成订单再生成主键(自动递增),BEFORE是先生成主键再生成订单(uuid)。
resultType:是返回值类型,只有两个选择(int/String),因为我们用它的时候只能是自然主键,而自然主键就只有两种,一种是UUID一种是自动递增,自动递增对应的是int,uuid对应的是String
查询语法:select LAST_INSERT_ID() 适用于递增
Select uuid() 适用于UUID
通过id删除用户:
int i = session.delete("test.delete",3);
System.out.println(i);
session.commit();
通过id修改用户:
User user2 = new User();
user2.setName("张飞");
user2.setId(8);
user2.setAddress("中国");
user2.setBalance(1000);
user2.setSex("男");
int i = session.update("test.update", user2);