一、练习how2j案例
1、入门练习
教程:Mybatis系列教材 (一)- 基础 - 入门教程 (how2j.cn)
我还是继续连接的sql server数据库,先建立对应数据库与数据表,并添加数据。
其中按照教程方法导入包,不过我将其中与数据库相关的包换成了连接sql server的包
TestMybatis.java:
其中listCategory对应在配置文件Category.xml中那条sql语句设置的id。
mybatis-config.xml:(主要提供连接数据库用的驱动,数据库名称,编码方式,账号密码;因此这里与教程不同)
Category.xml:
在这里通过resultType="Category"将返回的数据和Category关联起来。
Category.java:
基本原理:应用程序找Mybatis要数据,mybatis通过mybatis-config.xml 定位哪个数据库,接着通过Category.xml执行对应的select语句,并基于Category.xml把返回的数据库记录封装在Category对象中,最后把多个Category对象装在一个Category集合中并返回。
运行结果:
2、CRUD
教程:Mybatis系列教材 (二)- 基础 - CRUD (how2j.cn)
2.1 在Category.xml中提供所有数据增删改查需要的sql语句
其中#{name}与Category类的成员变量名同名,可以自动匹配。
2.2 在TestMybatis.java中更改
2.2.1增加:
Category c = new Category(); //创建Category对象c
c.setName("新增加的Category"); //利用setName方法增加的name内容
session.insert("addCategory",c); //调用addCategory对应的sql语句,为insert的id名
2.2.2删除:与增加类似
2.2.3获取:Category c= session.selectOne("getCategory",3);,其中3是id号,表示获取id=3的记录
2.2.4修改:与增加类似
增删查改运行结果:
数据表编辑前20行查看数据:
3、多条件查询和模糊查询
教程:Mybatis系列教材 (三)- 基础 - MyBatis 多条件查询和模糊查询实例 (how2j.cn)
(1)模糊查询:
在mysql中,concat() 函数用于将多个字符串连接成一个字符串,返回结果为连接参数产生的字符串;如有任何一个参数为NULL ,则返回值为 NULL。
里面有连接mysql 与sql server的区别,就像concat('%',#{0},'%') ,这是mysql的写法;
在sql server中是'%'+#{0}+'%' 。
查询结果:
数据库数据:
(2)多条件查询:
where语句中用and连接多个条件,其中要注意因为是多个参数,而selectList方法又只接受一个参数对象,所以需要把多个参数放在Map里,然后把这个Map对象作为参数传递进去。
查询结果:
一开始由于将name like '%'+#{name}+'%'写成了name like '%'+#{0}+'%',便出现了以下错误: