一.介绍:
在之前的mybits的编码当中,我们会发现部分的代码在编写的时候依旧存在硬编码的问题,比方说在写测试类当中的SQL执行的时候,如图
一方面要看其原本的空间名称,另一方面还要查看原本的ID,来回转变,让人头大,显得很不方便,由此,我们可以使用MAPPER代理的方式,解决这一硬编码的问题,同样的,使用MAPPER也能够简化代码,以下为MAPPER代理的主要方式
二:MAPPER代理入门
1.定义跟SQL映射文件名称相同的MAPPER的接口 ,并且一定一定需要将MAPPER接口跟SQL映射文件放置在一个的目录下
在这里需要注意的一点,如果想要将配置文件跟接口放在一个文件夹当中,最好时不要采用将两个放在一个包下,最好是将配置文件跟其单独分开,切记不要像下面这样
为了实现目的,其实我们仅仅只需要创建一个跟MAPPER接口相同的包名称即可,如图
TIPS!在更改完包之后,我们的BrandMapper因为路径被修改了,所以我们需要在配置文件当中重新对其映射文件进行一个修改
右键,复制其路径,之后再在相应的配置文件当中进行修改即可
如果表不在当前的数据库当中,记得也要修改相应的数据库名称,都在mybatis的配置文件当中
2.设置SQL映射文件的名称空间属性为MAPPER接口的全限定名称
比较容易实现,按照包的位置进行一一输入即可
3.在MAPPER接口当中定义方法,方法名称就是SQL映射文件当中的sql语句的ID 同时的,要保证参数的类型跟返回值时一样的
在这里,我们以全部查询为例子 还有一个小细节,就是在接收的时候我们需要提前想好拿什么进行接受,在这里查询全部的查询结果明显是一个集合的形式进行接受,所以我们使用LIST集合,接受一个Brand的对象,Brand对象里面存放的是表的一些属性以及部分的get以及set方法
4.在测试类当中进行编码
public class MyBatisDemo2 { //通过使用MAPPER来简化对于JDBC的代理开发 public static void main(String[] args) throws IOException { // 1.加载MYBITS的核心文件,获取SqlSessionFactory String resource = "mybatis-config_UserMapper.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //2.获取SqlSession对象,从而来执行sql SqlSession sqlSession = sqlSessionFactory.openSession(); //执行SQL //在这里填入SQL标签即可,以及空间名称 //3.1获取UserMapper接口的代理对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> users = mapper.selectAll(); System.out.println(users); //4.释放资源 sqlSession.close(); } }
三:核心配置文件-别名(typeAliases)
通过使用别名的方式,我们可以让SQL返回语句得以简化
之前,对于SQL语句的返回我们都是将其包名全部书写,如图
在添加上标签之后,我们就可以直接在返回类型当中输入相应对象的名称,并且不区分大小写
添加标签方式如下;
在package name当中填写相应对象所在的包名称即可
TIPS:需要注意的一点是,在配置各个的标签的时候,需要注意标签的顺序,如下
OVER!感谢观看