赞
踩
我们主要使用帮助文档,核心jar包,我们之后都在Maven中导入了
插件的作用介绍:
写SQL语句的文件,Mybatis会执行这些SQL,
这样的好处是Sql语句和原先的代码分开了,修改Sql语句不会影响到原先代码的执行
把SQL语句查询到的id,name,email,age,依次赋值给Student类中定义的变量
主要定义了数据库的配置信息,连接数据,确定SQL映射文件的位置
插入setting,这样在做查询,删除,更新,添加的时候能在控制台看见sql语句和参数了
显示如下:这是查询
创建SqlSession去访问了数据库,接着传数据给controller层
在StudentDao中加上方法
在StudentDao.xml中加入
在impl下添加一个方法
原始代码
SQLSession创建,并访问数据库的代码
Mybatis类中的代码重复太多,我们需要封装一下
使用工具类后的代码
我们以后主要就是写dao接口方法和对应的sql映射文件即可
Mybatis的动态代理:
动态代理的话就不用写dao接口的实现类了,通过getMapper()方法自动在内部创建实现类,并且在实现类中自动调用SqlSession的方法来执行sql语句
前提是Pom.xml中已经配置好了,Mybatis的主配置文件也配置好了
第一步:只需要在接口中写上方法即可,不用写实现类,然后在StudentDao.xml中添加上方法
第二步:service层中,通过getMapper()获取StudentDao接口的对象即可
传统方法是在dao层的impl包下的实现类中进行数据库操作,再传递给controller层
动态代理方法是,在service层中的impl包下自动的创建实现类,调用dao层方法,获得数据,再传递给controller层
接口中
SQL映射文件中
主方法中
因为一个项目中肯定有一个对象
Java对象
接口中
Sql映射文件中
主方法中
能使用#就使用#
MyBatis帮你连接数据库,帮你执行sql语句,最后按你接口中定义的返回值把输出结果给你,你只需要写sql语句和处理返回的结果即可
resultType和接口方法的返回值是保持一致的
建议使用返回值是对象的
缺点是只能返回一行数据
如果sql语句是where id>#{stuid},那么结果就会报错,因为查询结果不只一行
接口中
Sql映射文件中
Sql语句中的列名必须和Student中的属性名一样,才能把列名的值赋给对应的属性名
如果不一致,那么就无法赋值
比如:我们改变了id和name的属性名
而SQL语句中的名字没变
结果改变名字的就没有赋到值
不建议使用别名,建议使用全限定名称
在Mybatis主配置文件中
在sql映射文件中
在Mybatis主配置文件中
Sql映射文件中,直接用对象的类名
resultType必须指定sql的列名和对象的属性名,名称一致,如果不一致但是还想保证赋值成功,就得用resultMap来做结果映射
Student对象属性名
列名 id和name不一致
结果赋值失败
在SQL映射文件中,resultMap指定列名赋给哪个属性名
resultType的默认原则是:同名的列赋值给同名的属性
那么我们就把不同名的列名改成和属性名一致就行
接口方法
SQL映射文件
主方法中
接口方法
SQL映射文件中
主方法中
对于该标签的执行,当 test 的值为 true 时,会将其包含的 SQL 片断拼接到其所在的 SQL 语句中。
语法:< if test=”条件”> sql 语句的部分< /if>
Where能解决if中存在的问题
用来包含多个< if>的,当多个if有一个成立的, < where>会自动增加一个where关键字,并去掉 if中多余的 and ,or等。
测试例子:
当第一个条件不成立,第二个条件成立时,where会自动添加上,并且会去掉if中多余的or,and
原始手动写法
select * from student where id in (1001,1002,1003)
< foreach> 循环java中的数组,list集合的。 主要用在sql的in语句中。会自动帮你进行字符串的拼接
接口方法中
Sql映射文件中
主方法中
接口中
SQL映射中
主方法中
定义Sql片段
使用Sql片段
< transactionManager>
< dataSource>
把数据库连接信息放到一个单独的文件中。 和mybatis主配置文件分开。
目的是便于修改,保存,处理多个数据库的信息。
这是在主配置文件中,原来我们把连接数据库的信息写在这,现在应该写在一个配置文件中
第一步:在resources包下创建一个配置属性文件,在里面写上数据库的连接信息,格式是Key-value
都是自定义的
第二步:在主配置文件中使用指定配置文件的位置
通过${}引入配置属性文件中的key,这样以后只需要改配置属性文件的内容即可,便于维护
原始的Sql分页查询:select * from student limit 1,3 表示从第一条数据开始显示,一共显示3条数据,这表示第一页,第二页就得是select * from student limit 4,3 从第四条数据开始显示,一共显示3条
原始方法每次写下一页的时候都得计算前面的数据很麻烦
我们用PageHelper这个组件只需要写第几页显示几条数据即可,内部给你算好了
这个组件不是Mybatis自带的,而是国内的一个人写的
pom.xml中加入PageHelper依赖
在< environments>之前加入
接口中
SQL映射文件中
查询所有的学生按id排序
主方法中使用PageHelper
例子是第1页显示3行数据,要查询第二页的只需要改一下pageNum为2即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。