原生态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位

修改配置文件

控制台打印:

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

删除:

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

更新:

mybatis入门截图总结的更多相关文章

  1. mybatis入门截图四(订单商品数据模型-懒加载-缓存)

    <!-- 延迟加载的resultMap --> <resultMap type="cn.itcast.mybatis.po.Orders" id="Or ...

  2. mybatis入门截图四(订单商品数据模型 一对一,一对多,多对多)

    --------------------------------- 一对一查询 查询订单信息,关联查询创建订单的用户信息 1.高级映射-一对一查询-使用resultType 2.高级映射-一对一查询- ...

  3. mybatis入门截图三

    ----------------------------------------------- <!-- 用户信息的综合查询 --> <select id="userlis ...

  4. mybatis入门截图二

    -------------------- 线程不安全问题 首先明白什么是线程不安全: 举例:struts2中,每个action中都定义了model模型对象(action类中是全局对象的存在  数据域属 ...

  5. mybatis入门--初识mybatis

    初识mybatis 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. ...

  6. MyBatis1:MyBatis入门

    MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...

  7. mybatis入门基础(二)----原始dao的开发和mapper代理开发

    承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...

  8. MyBatis入门基础(一)

    一:对原生态JDBC问题的总结 新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记 ...

  9. MyBatis入门案例、增删改查

    一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...

随机推荐

  1. ORACLE NOLOGGING研究

    熟悉oracle的人都知道.通过设置oracle的nologging选项,能够使某些操作高速完毕,风险是数据库备份可能失效.能够使用nologging的操作有非常多,搜集资料整理例如以下: 1.索引的 ...

  2. UVA - 10029 Edit Step Ladders (二分+hash)

    Description Problem C: Edit Step Ladders An edit step is a transformation from one word x to another ...

  3. 问题1-The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files

    问题一:The type java.lang.String cannot be resolved. It is indirectly referenced from required .class f ...

  4. 程序员(媛)Shell脚本必备技能之中的一个: 在Linux下怎样自己主动备份mysql数据

    作者:荀彧(花名) Background:鉴于QAS数据库曾遭到毁灭性损害.极其桑心L.为了避免这样的玉石俱焚的状况再度发生.于是我们找出了一种应对方案.这里给大家分享一下怎样实现定时备份mysql数 ...

  5. session 的工作原理

    session.cookie_domain session.cookie_path session.name session.save_path session.use_cokies session_ ...

  6. ueditor1.4.3在.net环境下的vs开发工具中集成经验

    Ueditor是个非常不错的在线富文本编辑器,几个项目一直使用它.近期想更新版本号.发现新版1.4.3与旧版的部署方式全然不一样了.官网文档介绍的是直接放在iis下的部署说明,没有提到在vs开发工具中 ...

  7. luogu2761 软件补丁问题 状态压缩最短路径

    关键词:状态压缩 最短路径 想不出快速办法,就先考虑考虑暴力.枚举每一种错误分布的情况,然后通过可用的补丁转化为另多种情况,这些情况又转化为更多种情况……我们可以用图来表示这种关系! 状态压缩:每个错 ...

  8. c语言return与exit的区别

    2013-09-0918:54:33 exit函数在头文件stdlib.h中,函数原型: void exit(int status); exit(0) 正常运行程序并退出程序. exit(1) 非正常 ...

  9. JS网站图集相册特效

    JS网站图集相册特效是一款可以直接使用鼠标进行前后导航,也可以通过缩略图来切换图片. 在线演示本地下载

  10. draw9patch在SDK->tools找不到,在Android Studio点击图片没找到draw9patch

    draw9patch在SDK->tools找不到,在Android Studio点击图片没找到draw9patch 第一个问题: Google把draw9patch集成在Android Stud ...