JavaWeb Mapper代理开发

简介: JavaWeb Mapper代理开发

一.介绍:

       在之前的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!感谢观看


相关文章
|
10天前
|
前端开发 Java 关系型数据库
Java中的电子商务网站开发实战
Java中的电子商务网站开发实战
|
10天前
|
Java 数据挖掘 Linux
Java中的跨平台桌面应用开发实践
Java中的跨平台桌面应用开发实践
|
13天前
|
NoSQL Java Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
|
14天前
|
开发框架 Java API
Java中的REST API开发详解
Java中的REST API开发详解
|
8天前
|
存储 Oracle Java
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
13 0
|
8天前
|
存储 安全 Java
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
16 0
|
13天前
|
存储 程序员
JavaWeb之Listener监听器
JavaWeb之Listener监听器
8 0
|
14天前
|
消息中间件 存储 SpringCloudAlibaba
会员系统01----基于Java开发的 | BTC,完整的SpringClound微服务包含内容
会员系统01----基于Java开发的货币交易所 | BTC,完整的SpringClound微服务包含内容
|
14天前
|
敏捷开发 Java 测试技术
实现Java应用的快速开发与迭代
实现Java应用的快速开发与迭代
|
15天前
|
开发框架 Java API
Java中的REST API开发详解
Java中的REST API开发详解