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位

修改配置文件

控制台打印:

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

删除:

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

更新:

 

原文地址:https://www.cnblogs.com/Joke-Jay/p/7440712.html