原生态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. 《ASP.NET》数据绑定——GridView

    GirdView简单介绍: 名称:网络视图. 来源:GridView 是 DataGrid的后继控件.在.net framework 2 中,尽管还存在DataGrid,可是GridView已经走上了 ...

  2. 让cocos2dx支持并通过arm64 编译

    为了要支持64位,请把这个文件直接替换到相应的lib文件夹下.本来是须要改neton_matrix_impl.c里的宏定义, 在 platform/ios/EAGLVIEW.mm中 在neon_mat ...

  3. 17229 Lry,你除了2还是2

    17229 Lry,你除了2还是2 时间限制:1000MS  内存限制:65535K提交次数:282 通过次数:46 收入:22 题型: 编程题   语言: G++;GCC Description L ...

  4. 【cocos2d-x 3.7 飞机大战】 决战南海I (十二) 游戏结束场景

    游戏结束的时候,要显示分数.还要可以选择是返回主场景还是退出游戏 // 退出游戏 void menuCloseCallback(cocos2d::Ref* pSender); // 返回主界面 voi ...

  5. Java异常的捕获与处理

    Java提供了try(尝试).catch(捕捉).finally(最终)这三个关键字来处理异常.在处理各种异常时,需要用到对应的异常类,指的是由程序抛出的对象所属的类. 一.异常处理的使用 由于fin ...

  6. Shell case esac语句【转】

    本文转载自:http://c.biancheng.net/cpp/view/7006.html C语言中文网推出辅导班啦,包括「C语言辅导班.C++辅导班.算法/数据结构辅导班」,全部都是一对一教学: ...

  7. [HTML] 条件注释判断浏览器

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![e ...

  8. AndroidStudio项目CMakeLists解析

    # For more information about using CMake with Android Studio, read the# documentation: https://d.and ...

  9. SMTP协议详解

    简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准. SMTP是一个相对简单的基于文本的协议.在其之上指定了一条 ...

  10. 初学struts2杂乱笔记

    1.在web.xml文件里定义struts2里的一个过滤类org.apache.struts2.dispatcher.FilterDispatcher 2.在src目录下创建struts.xml文件, ...