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位

修改配置文件

控制台打印:

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


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


mybatis入门截图总结的更多相关文章
- mybatis入门截图四(订单商品数据模型-懒加载-缓存)
<!-- 延迟加载的resultMap --> <resultMap type="cn.itcast.mybatis.po.Orders" id="Or ...
- mybatis入门截图四(订单商品数据模型 一对一,一对多,多对多)
--------------------------------- 一对一查询 查询订单信息,关联查询创建订单的用户信息 1.高级映射-一对一查询-使用resultType 2.高级映射-一对一查询- ...
- mybatis入门截图三
----------------------------------------------- <!-- 用户信息的综合查询 --> <select id="userlis ...
- mybatis入门截图二
-------------------- 线程不安全问题 首先明白什么是线程不安全: 举例:struts2中,每个action中都定义了model模型对象(action类中是全局对象的存在 数据域属 ...
- mybatis入门--初识mybatis
初识mybatis 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. ...
- MyBatis1:MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- MyBatis入门基础(一)
一:对原生态JDBC问题的总结 新项目要使用mybatis作为持久层框架,由于本人之前一直使用的Hibernate,对mybatis的用法实在欠缺,最近几天计划把mybatis学习一哈,特将学习笔记记 ...
- MyBatis入门案例、增删改查
一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...
随机推荐
- 读取url中某个值
url="http://test.plus.1course.cn/Task/Display?id=25942" print(url) result=url.split('/')[- ...
- Problem G 宝石合成 (内蒙古14年省赛)
1117: Problem G 宝石合成 时间限制: 1 Sec 内存限制: 128 MB 提交: 18 解决: 4 [提交][状态][讨论版] 题目描写叙述 故事人物:豆豆强 走上致富之路的豆豆 ...
- luogu2437 蜜蜂路线
题目大意 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线?M,N<=1000 题解 看到M ...
- Github 基本使用
github GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath.PJ Hyett和Tom P ...
- linux下的oom调试笔记【原创】
平台信息:内核:linux3.0.68 系统:android/android5.1平台:s5p4418 作者:庄泽彬(欢迎转载,请注明作者) 邮箱:2760715357@qq.com 摘要:调整and ...
- 深入理解groupByKey、reduceByKey区别——本质就是一个local machine的reduce操作
下面来看看groupByKey和reduceByKey的区别: val conf = new SparkConf().setAppName("GroupAndReduce").se ...
- day63-webservice 07.07.如何修改cxf配置文件路径
为什么第一次访问http://localhost:8080/cxf-web-server/service有点慢?证明第一次访问的时候CXFServlet被初始化了被加载了.一般是让CXFServlet ...
- [Swift]注册并购买加入Apple开发者计划。提示: “你的支付授权失败。请核对你的信息并重试,或尝试其他支付方式。请联系你的银行”
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- colab使用谷歌云中的文件
colab使用谷歌云中文件 无法一劳永逸 Google Colab最大的不足就是使用虚拟机,这意味着我们自行安装的库虚拟机重启之后,就会被复原,比如keras,数据无法持久化.为了能够持久保存数据,我 ...
- NFS 开机自动挂载共享目录
开机自动挂载: 如果服务端或客户端的服务器重启之后需要手动挂载,我们可以加入到开机自动挂载 在服务端/客户端的/etc/fstab里添加 192.168.22.204:/opt/filestore ...