当前位置: 首页 > news >正文

化工材料 技术支持 东莞网站建设国内免费iphone网站

化工材料 技术支持 东莞网站建设,国内免费iphone网站,网站实时K线怎么做,团购的网站扣佣金分录怎么做文章目录 问题情境 代理开发 遵循的三条原则 1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下 2.设置SQL映射文件的namespace属性为Mapper接口的全限定名 3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql…

文章目录

 问题情境

代理开发

 遵循的三条原则

1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下

2.设置SQL映射文件的namespace属性为Mapper接口的全限定名

3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的唯一标识id,并保持参数类型与返回值类型一致

编码测试类

测试结果


 问题情境

        在上一篇文章中,博主分享了一个Mybatis的快速入门案例,但是细心的朋友会发现,在测试类中使用Mybatis查询数据库信息的那块代码中存在着“硬编码”问题,如下图所示:

        当SQL映射文件中查询语句id较多时,开发者还要去那个文件翻看,这样非常不方便且降低了开发效率,故本篇文章仍然以该入门案例为例,针对其中存在的问题来重点介绍一下Mybatis中的Mapper代理开发,看看它是如何巧妙地解决上述“硬编码”问题的。

代理开发

 遵循的三条原则

1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下

 方法一:直接将SQL映射文件拖到到Mapper接口所在的文件夹下

 注:虽然可行,但是不符合开发规范:应该将配置文件和编码文件分开,当配置文件很多时,将二者杂糅在一起逻辑非常不清晰,很乱,所以这种方法不建议使用,更推荐使用方法二。

方法二:在resources资源文件夹下建立与Mapper接口路径相同的文件夹

新建完对应文件夹之后将SQL映射文件放进去即可,如图所示:

        因为修改了SQL映射文件的路径,所以在Mybatis的核心配置文件中加载SQL映射文件路径的名称也得相应的改变

 

注:新建同路径文件夹时必须使用斜杠 / 来显示层级关系,而不能使用点号 . 

  • 正确语句:itheima/mapper  这样创建的文件夹才能显示层级关系
  • 错误语句:itheima.mapper  这样创建的文件夹只能显示名为itheima.mapper的一级文件夹,不能显示层级,即无法使mapper成为itheima的子文件夹

只有这样才能使得SQL映射文件路径与其对应的Mapper文件路径相同,才能代理成功

这一点一定要额外注意!!!    

2.设置SQL映射文件的namespace属性为Mapper接口的全限定名

 

 

3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的唯一标识id,并保持参数类型与返回值类型一致

 

 

编码测试类

package itheima;import itheima.mapper.UserMapper;
import itheima.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;
import java.io.IOException;
import java.util.List;import static org.apache.ibatis.io.Resources.getResourceAsStream;
/*** Mapper代理开发入门案例*/
public class MybatisDemo2 {public static void main(String[] args) throws IOException{//1.加载mybatis的核心配置文件,获取SqlSessionFactoryString resource = "mybatis-config.xml";InputStream inputStream = getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//2.获取SqlSession对象,用它来执行sqlSqlSession sqlSession = sqlSessionFactory.openSession();//3.执行sql,将查询到的学生数据以学生类的形式包装起来返回
//        List<User> users=sqlSession.selectList("Mybatis-test.selectAllUser");//3.1使用Mapper代理开发,获取UserMapper接口的代理对象UserMapper userMapper=sqlSession.getMapper(UserMapper.class);List<User>users=userMapper.selectAllUser();System.out.println(users);//4.释放资源sqlSession.close();}
}

测试结果

查询得到与之前相同的数据,但简化了方式,解决了原生写法中“硬编码问题”,Mapper代理成功!

END.

http://www.yayakq.cn/news/236454/

相关文章:

  • 怎么编写网站代码网站制作方案介绍及要求
  • 建站价格会差网站建设与维护 排序题
  • 家具网站建设wordpress 微信分享插件
  • 网站建设的基本流程可分为全企网建站怎么样
  • 文档里网站超链接怎么做贵州网站制作公司
  • 自建网站的好处外贸网站建站用什么
  • 雄安个人代做网站排名做网站要钱吗?
  • 免费个人网站怎么做重庆百度推广电话
  • 特产网站开发的目的如何设计一个网页并举例说明
  • 建站宝盒视频seo网站是什么
  • 德阳市建设管理一体化平台网站阿里云 oss做网站
  • 做网站多少怎么在自己做的网站上发视频教程
  • 做响应式网站应该注意什么问题西安的网页设计公司
  • 网站建设公司宝安wordpress拖拽主题
  • 用代码做一号店网站怎么做政务网站建设步骤
  • 网站建设加班软件开发软件下载
  • 天津网站建设技术外包企业网站报价
  • 房产网站建设的功能哪个网站做超链接
  • 程序员外包网站wordpress发布公告
  • 福州商城网站开发公司免费网页设计系统模板
  • 公司网站域名查询软件定制图片
  • 重庆大渡口网站建设个人建站流程详解
  • 作文大全网站页面设计在哪儿
  • 做网站怎么上线知识竞赛网站建设方案策划书
  • 重庆电脑网站建设电商网站开发实战视频教程
  • 网站建设和管理心得金华网站制作案例
  • 网站关键词词库怎么做招才猫网站多少钱做的
  • 某企业网站建设论文wordpress4.9 php版本
  • 网站制作项目分析怎么做 方法网站 数据库 模板
  • 南阳响应式网站制作网站开发项目延期说明