mybatis入门截图总结
原生态jdbc存在的问题

-------------------

-----------------------

-------
环境的搭建

----------------------------------------

--------------------------------
项目结构:

查询测试1:
1.1 根据用户id(主键)查询用户信息




----------------------
查询测试2
1.2 根据用户名称模糊查询用户信息


-----------------------------


------------------------------
添加测试1:
1.1 添加用户


添加测试2:
1.1.1 自增主键返回(添加之后 返回添加的数据对应的id值)

修改insertUser定义:

1.1.2 非自增主键返回(使用uuid())

---------------------
补充一个mysql知识点:mysql中使用32位uuid作为主键
创建的表结构:

mysql中生成32位uuid的格式 32位

原始uuid()函数:36位

向表中添加数据 id采用32位uuid

非自增主键返回(使用uuid())测试:
<!-- 添加用户 非自增主键的返回 uuid --> <insert id="insertUser2ReturnId" parameterType="org.mybatis.po.User2"> <selectKey keyProperty="id" resultType="String" order="BEFORE"> <!-- select uuid()的长度是36位(因为存在- 例如0039ec42-dc82-1035-a439-9ac409de40a4) --> <!-- 所以如果想要按照这种方式写的话 就需要设置id的长度为36位 --> <!-- 而 select replace(uuid(),'-','')是做了截取操作 长度为32位--> select replace(uuid(),'-','') </selectKey> insert into user2(id,username) values(#{id},#{username}) </insert>
//插入数据 并且输出插入数据对应的那个id值 非自增主键 uuid @Test public void insertUser2ReturnID()throws Exception{ String resource="SqlMapConfig.xml"; InputStream resourceAsStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession openSession = sqlSessionFactory.openSession(); User2 u2=new User2(); //无需指定id的值 由数据库生成id u2.setUsername("ggg"); openSession.insert("test.insertUser2ReturnId",u2); //System.out.println(u.getId()); openSession.commit(); System.out.println(u2.getId()); }
可以看到控制台 打印出了刚才插入的数据所对应的32位id值

修改表的主键长度:36位

修改配置文件

控制台打印:

--------------------
删除:


------------------
更新:


查看更多随笔:http://www.cnblogs.com/Joke-Jay/

浙公网安备 33010602011771号