mapper

SpringBoot 系列教程 Mybatis+xml 整合篇

二次信任 提交于 2019-12-31 23:14:40
SpringBoot 系列教程 Mybatis+xml 整合篇 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 本文将通过实例方式,介绍下如何整合 SpringBoot + Mybatis,构建一个支持 CRUD 的 demo 工程 I. 环境 本文使用 SpringBoot 版本为 2.2.1.RELEASE , mybatis 版本为 1.3.2 ,数据库为 mysql 5+ 1. 项目搭建 推荐是用官方的教程来创建一个 SpringBoot 项目; 如果直接创建一个 maven 工程的话,将下面配置内容,拷贝到你的 pom.xml 中 主要引入的是 mybatis-spring-boot-starter ,可以减少令人窒息的配置 < parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > <

2019年mybatils面试高频题(java)

浪尽此生 提交于 2019-12-31 12:33:04
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。 那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。 如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 一、什么是MyBatis? 答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。 二、讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存和二级缓存,一级缓存放在session里面,默认就有二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现Serializable序列化接口(可用来保存对象的状态),可在它的映射文件中配置 三、Mybatis是如何进行分页的?分页插件的原理是什么? 答: 1、Mybatis使用RowBounds对象进行分页,也可以直接编写sql实现分页,也可以使用Mybatis的分页插件。 2、分页插件的原理:实现Mybatis提供的接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql。 举例:select * from student,拦截sql后重写为:select t.* from (select * from student)t

mybatis 的 dao 接口跟 xml 文件里面的 sql 是如何建立关系的?一步步解析

泄露秘密 提交于 2019-12-31 09:38:22
序言 在开始正文之前,首先解释Dao接口和XML文件里的SQL是如何一一对应的? 一句话讲完就是:mybatis 会先解析这些xml 文件,通过 xml 文件里面的命名空间 (namespace)跟dao 建立关系;然后 xml 中的每段 sql 会有一个id 跟 dao 中的接口进行关联。 那么问题来了: "如果 我有两个这个xml 文件 都跟这个dao 建立关系了,那不是就是冲突了?" 带着这个疑问我们就要开始下面的正题了! 一、初始化 首先我们要知道每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的,SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。 但 SqlSessionFactory 是一个接口,它里面其实就两个方法: openSession 、 getConfiguration 其中, openSession 方法是为了获取一个SqlSession对象,完成必要数据库增删改查功能。但是,SqlSessionFactory属性太少了,所以需要 getConfiguration 的配合;来配置mapper映射文件、SQL参数、返回值类型、缓存等属性。 /** * Creates an {@link SqlSession} out of a connection or a

Need classic mapper example for SqlAlchemy single table inheritance

本小妞迷上赌 提交于 2019-12-31 04:39:04
问题 I found an example of how to do single table inheritance using Class mappings. http://docs.sqlalchemy.org/en/latest/orm/inheritance.html#single-table-inheritance But for the life of me, I cannot find an example of how to do this with classic mapper so that I can keep my classes and persistent mappings separate. How do I convert this example into classic mapping? I am clear on creating the tables, just not sure how to actually structure the mapper. In the example, there are the following types

hadoop MapReduce

為{幸葍}努か 提交于 2019-12-31 01:11:28
简单介绍 官方给出的介绍是hadoop MR是一个用于轻松编写以一种可靠的、容错的方式在商业化硬件上的大型集群上并行处理大量数据的应用程序的软件框架。 MR任务通常会先把输入的数据集切分成独立的块(可以看成是一个较小数据集),然后这些块由map任务以完全并行的方式的去处理。map任务输出的结果排完序之后会交给reduce去处理得到最终结果。MR负责调度,监听并重新执行失败的任务,它的输入和输入都存储在hdfs上。 MR框架由一个主节点 ResourceManager , 一个或多个从节点 NodeManager 以及每个应用程序独有的 MRAppMaster 组成。通常而言, MR 框架和hdfs运行在一组相同的的节点,即执行计算任务和负责数据存储的节点是同一个,这样的配置允许MR能够在存在数据的节点上高效地调度任务。 对于MR程序的开发,开发者只需要指定输入输出路径,通过实现适当的接口、抽象类以及一些其他的任务参数便可以完成。 任务流程 这里以MR的inputs-outputs、map、reducet三个方面来深入了解MR任务流程。 Inputs-outputs MR框架仅操作 <key, value> 形式的键值对,即MR把输入的数据视为一组<key, value>,并输出一组<key, value>。值得一提的是输入和输出的<key, value>在数据类型上并没有任何联系。

hadoop之MapReduce学习

淺唱寂寞╮ 提交于 2019-12-31 01:11:01
为什么需要MapReduce 进行分析数据,计算方便和复用性强;而且是文件级别的 进程包括三个 mrappmaster:负责整个程序管理 maptask:负责map阶段的整个过程 reducemask:负责reduce阶段的整个过程 为什么需要把jar包上传到集群上? 因为不止一个节点需要用到jar包,放到本地不能够被使用,因此放到集群上, namenode会告诉需要的节点,jar包所在位置 hadoop解决问题? 主要解决,海量数据的存储和海量数据的分析计算问题。 Hadoop三大发行版本? 三大发行版本: Apache、Cloudera、Hortonworks Apache版本最原始(最基础)的版本,对于入门学习最好。 Cloudera在大型互联网企业中用的较多。主要为CDH Hortonworks文档较好。 Hadoop的优势 1、高可靠2、高扩展性3、高效性4、高容错性 Hadoop组成 1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。 2)Hadoop MapReduce:一个分布式的离线并行计算框架。 3)Hadoop YARN:作业调度与集群资源管理的框架。 4)Hadoop Common:支持其他模块的工具模块。 yarn架构 1)ResourceManager(rm)、2)NodeManager(nm)、3)ApplicationMaster、4

Sqoop工具模块之sqoop-export

一曲冷凌霜 提交于 2019-12-30 22:23:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Sqoop工具模块之sqoop-export 一、介绍 该export工具将一组文件从HDFS导入RDBMS。目标表必须已经存在于数据库中。根据用户指定的分隔符读取输入文件并将其解析为一组记录。 1、模式 sqoop-export有三种模式: 默认模式:将它们转换为一组将INSERT语句注入数据库的语句。 更新模式:Sqoop将生成UPDATE替换数据库中现有记录的语句。 调用模式:Sqoop将为每条记录创建一个存储过程调用。 2、语法 和之前的导入工具一样,sqoop-export也有两种语法: sqoop export (generic-args) (export-args) sqoop-export (generic-args) (export-args) 二、参数 1、常用参数 --connect <jdbc-uri>:指定JDBC连接的数据库地址。 --connection-manager <class-name>:指定要使用的连接管理器类。 --driver <class-name>:手动指定要使用的JDBC驱动类。 --hadoop-mapred-home <dir>:指定$ HADOOP_MAPRED_HOME路径 --help:打印使用说明 --password-file

MyBatis 入门Demo

无人久伴 提交于 2019-12-29 22:17:21
新建数据库my_db,新建表student_tb id为主键,不自动递增 下载MyBatis https://github.com/mybatis/mybatis-3/releases 解压。 新建Java项目,什么都不用勾选(如果要在IDEA中操作数据库,可勾选SQL Support)。 勾选后,IDEA右侧会有一个Database的工具,可在IDEA中直接操作数据库。 导入mybatis所有的jar包、数据库驱动 mybatis.jar是必需的。 lib是mybatis依赖的第三方jar包,根据需要选择,嫌麻烦或者小白,可全部导入lib中的jar。 pdf是mybatis的文档。 设置MyBatis的日志 在src下新建文件 log4j.properties ,内容如下: # Global logging configuration log4j.rootLogger=ERROR, stdout,A # MyBatis logging configuration... log4j.logger.org.mybatis.example.BlogMapper=TRACE # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org

Mybatis-Plus 多表联查分页

守給你的承諾、 提交于 2019-12-29 02:05:53
原文:https://www.jianshu.com/p/759b6430ed5b 分析 使用的工程,依旧是 spring-boot,关于分页,官网给出了一个单表的 demo ,其实多表分页实现原理相同,都是通过 mybatis 的拦截器 (拦截器做了什么?他会在你的 sql 执行之前,为你做一些事情,例如分页,我们使用了 MP 不用关心 limit,拦截器为我们拼接。我们也不用关心总条数,拦截器获取到我们 sql 后,拼接 select count(*) 为我们查询总条数,添加到参数对象中)。 实现 1. 配置拦截器 @EnableTransactionManagement @Configuration @MapperScan("com.web.member.mapper") public class MybatisPlusConfig { /** * mybatis-plus SQL执行效率插件【生产环境可以关闭】 */ @Bean public PerformanceInterceptor performanceInterceptor() { return new PerformanceInterceptor(); } /* * 分页插件,自动识别数据库类型 多租户,请参考官网【插件扩展】 */ @Bean public PaginationInterceptor

使用idea 搭建一个 SpringBoot + Mybatis + logback 的maven 项目

被刻印的时光 ゝ 提交于 2019-12-29 00:40:28
(注意项目名不能有大写。。。。。。),把项目类型 改成 War 类型。(web项目) 使用 mybatis-generator 插件 生成 实体类 和 接口 在 resources 目录 中 新建一个 generatorConfig.xml 的文件 generatorConfig.xml 文件信息 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6 <generatorConfiguration> 7 <context id="default" targetRuntime="MyBatis3Simple"> 8 <!--创建class时,对注释进行控制--> 9 <commentGenerator> 10 <property name="suppressDate" value="true" /> 11 <!--去除注释--> 12 <property name="suppressAllComments" value=