一个小案例
如果我不用id作为主键,而是用UUID作为主键,怎么操作?
第一种方法
<insert id="insertUser" parameterType="com.bamzhy.bean.User">
INSERT INTO tt_user VALUES (#{
id},#{
username},#{
password},#{
email},#{
age});
</insert>
@Test
public void test3() throws IOException {
//使用Mybatis的api去实现
//加载配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//操作数据库的一个载体
SqlSession sqlSession = sqlSessionFactory.openSession();
//返回一个对象
User user = new User();
//Universally Unique Identifier(UUID 通用唯一识别码)
user.setId(UUID.randomUUID().toString());
user.setUsername("haha4");
user.setPassword("12345");
user.setEmail("12345@qq.com");
user.setAge(199191);
int insert = sqlSession.insert("test.insertUser", user);
sqlSession.commit();
System.out.println("insert "+insert);
}
第二种方法
- 使用selectKey
<insert id="insertUser" parameterType="com.bamzhy.bean.User">
<!--keyProperty对应的是下边{}中的名称,resultType是其格式,order是执行时间在此条sql语句前还是语句后-->
<selectKey keyProperty="id" resultType="string" order="BEFORE">
SELECT UUID()
</selectKey>
INSERT INTO tt_user VALUES (#{id},#{username},#{password},#{email},#{age});
</insert>
使用MyBatis ORM实现DAO层
案例2实现之前代码的重构
src下边的mybatis.xml和user.xml跟之前的没有区别(那些不用动)
- 新增UserDaoImpl.java