范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

大数据开发基础之Mybatis

  大数据开发基础之Mybatis
  今天就是关于大数据开基础JAVA部分的最后一节了,这一节学完,至此大数据开发基础JAVA就结束了,所以给大家带来的是大数据开发基础之Mybatis。
  一、Mybatis
  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。
  MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
  Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
  mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)
  MyBatis框架示意图:
  注意点:
  1.mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
  2.通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
  3.由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
  4.mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。
  5.Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
  6.Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
  7.Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
  二、Mybatis的主要流程和核心概念之间的关系
  (1)SqlSessionFactoryBuilder读取配置信息生成SqlSessionFacotry,配置信息主要是通过读取配置文件mybatis-config.xml得到的,也可以通过其他方式。
  (2)通过SqlSessionFacotory可以获得SqlSession。
  (3)SqlSession可以调用具体的sql语句进行执行,sql语句则通过读取mapper xml文件得到。
  (4)最核心的地方就是sql语句的动态生成,以及参数的传入和查询结果的转化,这些都是Mybatis通过配置可以处理的,使用Mybatis主要在这三部分的编写。
  三、Mybatis的配置文件mybatis-config.xml
  通过xml配置文件的形式配置一些Mybatis的全局信息,例如数据源、typehandler之类的,可以再构造时指定文件路径,不过mybatis-config.xml是默认的名字,可配置的主要信息如下:
  (1)properties,配置一些属性值,全局都可以使用。
  (2)settings,配置Mybatis运行时一些关键属性的设置,包括设置缓存、懒加载、使用生成主键之类的,可以看文档了解。
  (3)typeAliases,定义一些全局的别名。
  (4)typeHandlers,配置一些全局的类型处理器,Mybatis在数据库类型和java类型进行值转化时所使用,主要是java类型参数传入转化为数据库类型,查询结果从数据库类型转化为java类型。Mybatis自带一些默认的typeHandler,处理常见的类型,例如字符串、布尔值、日期等等。该配置文件中用户自定义一些全局的typeHandler,Mybatis会在类型转化时自动寻找,typeHandler也可以在mapper xml文件中配置,不过只是针对具体字段起作用。typeHandler核心在于指定javaType,jdbcType和具体的处理器。
  (5)plugins,Mybatis允许用插件的方式对sql语句的生成和执行进行拦截,做一些处理。其中ResultSetHandler,StatementHandler是在meet-mybatis中用来处理分页,对生成的sql语句进行处理。
  (6)environments,和mavne中的profiles类似,都是定义一些environment,以ID区分,然后默认激活一种环境,environment中可以配置数据源datasource和事务管理器transactionManager。
  (7)mappers:定义需要加载的mapper xml文件,只有定义了该标签SqlSession才能更具id找到对应的sql语句执行。在mybatis-spring使用方式中,可以直接以属性方式配置给SqlSessionFactory。
  四、最核心文件Mapper XML
  Mapper XML定义了具体执行的sql语句,缓存,定义传入参数和查询结果的转化方式
  (1)select标签,定义查询语句,关键的属性包括:
  (2)insert标签定义增加操作,核心在于参数的传入。除了和select一些公共属性外,关键属性还包括
  (3)delete和update标签定义删改操作,核心在于参数的传入,除了公共属性,没有额外属性
  (4)sql可以定义重用的sql代码段,供其他标签通过导入
  (5)参数的传入,主要采用parameterType定义,不仅可以指定基本类型,还可以指定自定义类型。主要格式就是#{参数,javaType,jdbcType,typeHandler},也可以定义numericScale主要是数值型进行转化时保留精确度,#{}会自动装入对应属性的值拼成sql,特殊需求下${}可以直接传入字符串而不会发生值替换,这种情况容易导致sql注入攻击,因此不提倡。
  (6)最最核心的就是resultMap标签,查询是数据库最主要的功能,通常情况下,可以通过resultType指定返回结果类型,Mybatis会更具字段名称和类型,调用对应的typeHandler进行转换,但是对于复杂的查询结果,特别是多表关联查询时,比较复杂。在resultMap中id和result将具体字段和属性的值进行对应,它们可以自由的定义列的类型、属性的类型及处理器。其中比较有用的几个标签如下
  (7)cache标签,定义缓存。Mybatis的缓存分为两种:session局部缓存,是在sqlSession生命周期中的缓存又称为本地缓存,cache相当于二级缓存,作用在当前Mapper XML范围内,默认不开启,开启只需添加即可,
  当前xml文件中所有select语句都将缓存,insert,update和delete语句都会刷新缓存,默认使用LRU算法,可以通过eviction来定义,刷新时间可通过flushInterval定义,size定义缓存的结果集的数量。
  以上就是关于大数据开发基础之Mybatis的所有内容了,这也代表着大数据开发基础的JAVA部分已经学完了,希望大家在这期间都有学到知识,打好JAVA基础,后面才会有利于自己的发展。
  希望大家点个关注,及时收取最新文章推送。
  有问题的欢迎在评论区留言,如有侵权请告知。

国内低代码开发平台,哪个更值得一试?根据某研究机构调研报告现实,低代码开发平台供应商每年都在以50的增长率快速的发展中,在众多的低代码开发平台里,挑选最适合企业的才是至关重要的,那么我们可以从哪些方面去选型低代码开发隔离期结束孟晚舟回华为上班了10月25日,一段由华为员工拍摄的视频片段显示,孟晚舟已经回到华为上班,身穿黑色套装的孟晚舟双手挥动,在场的华为员工不断欢呼。据华为内部员工对记者表示,拍摄的地点是华为深圳坂田园区红米Note11系是一部非常完美的手机,红外NFC大电池,999起售首先在这几天卢伟冰的爆料中看到各种功能都慢慢显现出来了,就差处理器了。前言Note11小金刚要完成6大挑战!一个回归,一心一亿四个超越,剑指旗舰一个首创,提示潮流以下是作者整理的一2000元档,无出其右!海信HD100DG14D洗烘一体机深度体验前言一直想给爸妈家换一台,爸妈家原先一直用着一台10几年前的,虽说当时这台机器也是不错的,不过这么多年过去了,洗衣机的技术也不知更新的升级了多少代了,洗涤方式上确实跟不上时代了,最Android适配1。为什么适配(1)厂商多,设备多,屏幕的尺寸,分辨率多。(2)大多数的计算方式dpi等于(屏幕宽的平方屏幕高的平方)整体开根号(单位是px),然后除以屏幕尺寸(单位是英寸)。de华为55寸电视1699元,网上很多人预定,如果现在预定能买到吗?这个价格确实给力,华为终于良心了一次,55寸的智慧屏1699元的价格闭着眼睛都可以买,不过现在想买都买不到了,京东预订量都达四万多台了。我想说的是,只要有预订就要满足供应!前提是要低碳智能获资本青睐ROEHL酝酿新一轮股权融资随着中国积极推进碳达峰碳中和战略,创投资本对基于低碳环保理念的新业务模式投资兴趣与日俱增。记者获悉,近日专注环保型智能家电产品研发的订阅式生活服务公司ROEHL正在酝酿A轮股权融资如果价格相近,你会选择去年的旗舰机还是今年的中端机?要是我的话,肯定是选择今年的中端机,毕竟买新不买旧嘛,再者在核心配置上中端机的配置也不差。就拿我前阵子入手的iQOONeo5来说,无论是玩游戏还是充电速度,甚至颜值上都非常具有竞争一晚卖了106亿,李佳琦到底靠什么掏空你的钱包?即便卖了106亿,也没有一块是我贡献的。能被李佳琦种草的人,腰包也不止一块钱,一毛钱,挂个粉丝灯牌就破产了,不存在。李佳琦一样是短视频up主,每条短视频的点赞和阅读量都是百万级别的手机照相,可以把照片在照相馆洗出来吗?可以啊可以的数量多也可通过电脑打印这样更快观代智能手机的拍照功能,其实就是一部微型照相机。若要洗印照片,一是用数据线直接导出照片进行洗印照片,二是还可以把手机上的照片导入u盘或移动怎样用滴滴打车便宜?李博老师自述我发了一条视频出现第三天的滴滴给我发了七封律师函,朋友们有没有发现滴滴被安卓市场苹果市场下架了,罪名是啥?一个月前新闻就说了大数据杀手。谁把它搞成这样的?我告诉你们,是
古典音乐家与名表一席谈(一)知名古典音乐家和其音乐往往极富特色,某些音乐家还相当有传奇色彩,几百年来为人所津津乐道。而世界名表的许多品牌也有几百年的历史了,几百年的坚持使相当多的名表极富特色。充满艺术魅力,和FocalAriaK2全新系列面市,两声道音乐与多声道家庭剧院超值优选Aria系列是Focal在2013年推出的,当时中低音单元创新使用Flax亚麻纤维复合振膜高音单体也配备Focal第二代TNV2内凹反转振膜,整体声音表现获得很大的提升,这几年来也声技家的桌面神器评声技MC12音箱在国内浮噪的环境下面,有一个特殊品牌叫声技电子。它的创始人有二十年发烧经验的音乐和音响爱好者,并且自己也懂电子和音响设计技术,是另一个公司的技术负责人。同时他也是著名的音乐分享网站高质量音乐与居家生活融合FocalOnWall300系列挂墙式喇叭现代的音响不仅要好声,还要能融入居家生活之中,毕竟要拥有专属的视听室在房价高涨的时代是越来越困难,通常客厅就是全家人的娱乐中心,法国HighEnd喇叭大厂最新发表的OnWall30耳机常见的工作方式一席谈自我简单介绍,很久以来,自己算是个音响音乐耳机发烧友,长期混各论坛啥的,别人都叫我杰长老。混久了也就成了精,现在也算是个从业人员了,呵呵。从去年初创立了一家叫成都自然声的公司,目前挑选耳机的基础知识谈谈耳机的形式及参数有空发一些有助于大家了解和选择耳机音响音乐的文章,希望大家喜欢。欢迎关注杰长老,欢迎友好讨论,共同提高。自我简单介绍,很久以来,自己算是个音响音乐耳机发烧友,长期混各论坛啥的,别人二十世纪伟大的指挥大师们(意大利奥地利)上世纪初由于录音的出现,使一般的听众有机会聆听到大师们的指挥录音,这也使得很多指挥大师为普通爱乐者所熟知。尤其是上世纪下半叶,立体声录音的出现使古典音乐欣赏不用必须走进音乐厅才能欣快来围观,电信新晋天团偶像组合一直受到粉丝追捧那些有颜值又有实力的组合更是让无数人无法自拔叫他们一声天团组合当之无愧但是,你知道吗?中国电信最近也有一个天团横空出世如偶像一般原地C位出道不信?那就一起来Windows11是否真的需要升级?这4点你必须知道,别再乱操作了就在这个月5号,Windows11开始在符合条件的设备上推出,但微软会逐步推出,这就意味着并非所有Windows10设备都在第一天升级,对此期间你可以决定何时进行升级。然而,微软已Windows11SE系统首曝!低配电脑也能流畅如飞,要来试试吗?都知道,手机中有SE后缀的型号,其实这表示特别版,是specialedition(特殊版本)的缩写,例如小米8SE,小米9SE。手机特别版本在价格与配置上都比普通版的要高。那么,你比特币支付的矛与盾这几天关于是否支持比特币支付的问题冲上热搜话题榜。一直以来围绕这个是与否的问题两极对立,褒贬不一。例如比特币的萨尔瓦多法定货币之路。近期,以太坊联合创始人VitalikButeri