mapper

TKmybatis的框架介绍和原理分析及Mybatis新特性

戏子无情 提交于 2020-03-23 06:30:12
tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具 实现对员工表的增删改查的代码 java的dao层接口 public interface WorkerMapper extends Mapper<Worker> {} xml映射文件 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.jjs.kaiwen.dao.WorkerMapper"> <resultMap id="BaseResultMap" type="com.jjs.kaiwen.model.Worker"> <!-- WARNING - @mbggenerated --> <id column="id" jdbcType="INTEGER" property="id" /> <result column="worker_id" jdbcType="VARCHAR" property="workerId" />

17.AutoMapper 之配置(Configuration)

人走茶凉 提交于 2020-03-21 17:01:17
https://www.jianshu.com/p/031ff68797dd 配置(Configuration) 通过构造函数创建并初始化 MapperConfiguration 实例: config = new MapperConfiguration(cfg => { cfg.CreateMap<Foo, Bar>(); cfg.AddProfile<FooProfile>(); }); MapperConfiguration 可以静态存储在静态字段或者依赖注入容器中。一经创建就无法更改/修改。 或者,您可以使用静态Mapper实例初始化AutoMapper: Mapper.Initialize(cfg => { cfg.CreateMap<Foo, Bar>(); cfg.AddProfile<FooProfile>(); }); 配置文件实例 使用配置文件来组织你的映射配置是一个很好的方式。创建继承自Profile的类并把配置写在构造函数中: // 这种方式从5.0版本开始 public class OrganizationProfile : Profile { public OrganizationProfile() { CreateMap<Foo, FooDto>(); // 在这里使用 CreateMap... 等等 (Profile 方法跟

MyBatis的一对一关联关系映射

会有一股神秘感。 提交于 2020-03-21 09:29:39
原文链接:http://www.yiidian.com/mybatis/one-to-one.html 1 什么是一对一、一对多映射? 以用户和订单举例, 一对一 : 一个订单只属于一个用户 ==> 订单对用户是一对一关系 一对多 : 一个用户可以拥有多个订单 ==> 用户对订单是一对多关系 注意:在MyBatis中,如果要完成多对多关系,其实就是两个一对多映射! 接下来先讲解MyBatis的一对一映射如何实现。 2 建立表结构 2.1 创建用户表 CREATE TABLE `t_user` ( `id` int(11) DEFAULT NULL, `username` varchar(50) DEFAULT NULL, `password` varchar(50) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 2.2 创建订单表 CREATE TABLE `t_order` ( `id` int(11) DEFAULT NULL, `orderno` varchar(100) DEFAULT NULL, `amount` double DEFAULT NULL, `user_id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 2.3 插入测试数据 3

baseService

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-21 01:17:16
baseService层代码 public interface BaseService<T> { /** * 跟据id查询数据 * @param id * @return */ T queryById(Long id); /** * 查询所有数据 * @return */ List<T> queryAll(); /** * 跟据查询条件查询记录数 * @param t * @return */ Integer queryCountByWhere(T t); /** * 跟据查询条件查询数据列表 * @param t * @return */ List<T> queryListByWhere(T t); /** * 分页查询数据 * @param page * @param rows * @return */ List<T> queryByPage(Integer page,Integer rows); /** * 跟据查询条件查询一个数据 * @param t * @return */ T queryOne(T t); /** * 保存数据 * @param t */ void save(T t); /** * 保存数据,忽略空字段 * @param t */ void saveSelective(T t); /** * 更新数据 * @param t */ void

MyBatis 的 DAO 接口跟 XML 文件里面的 SQL 是如何建立关系的

与世无争的帅哥 提交于 2020-03-16 12:49:22
MyBatis 会先 解析这些 XML 文件 ,通过 XML 文件里面的 命名空间 (namespace)跟 DAO 建立关系 ;然后 XML 中的每段 SQL 会有一个id 跟 DAO 中的接口进行关联。 首先我们要知道每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的, SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。 但 SqlSessionFactory 是一个接口,它里面其实就两个方法: openSession 、 getConfiguration 其中, openSession 方法是为了获取一个 SqlSession 对象,完成必要数据库增删改查功能。但是, SqlSessionFactory 属性太少了,所以需要 getConfiguration 的配合;来配置 mapper 映射文件、SQL 参数、返回值类型、缓存等属性。 /** * Creates an {@link SqlSession} out of a connection or a DataSource * * @author Clinton Begin */ public interface SqlSessionFactory { SqlSession openSession();

mybatis 实现增删改查(CRUD)

蓝咒 提交于 2020-03-14 20:35:32
如何创建项目,注入依赖,编写核心配置文件、工具类、实体类这里就不详细说了,具体可以参考下边这条博文 https://www.cnblogs.com/bear7/p/12491937.html 这里将详细说一下有关mybatis操作数据库实现增删盖查的步骤:    *编写接口   *编写对应映射文件中mapper   *编写测试类 1.select语句:选择,查询数据   1.1 查询User表中所有信息     *编写接口  package com.kuang.dao; import com.kuang.pojo.User; import java.util.List; public interface UserMapper { List<User> getUserList(); }      *编写对应映射文件中mapper中的sql语句 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.kuang.dao.UserMapper"> <select id="getUserList"

[转帖]DOCKER基础技术:DEVICEMAPPER

守給你的承諾、 提交于 2020-03-13 08:06:27
DOCKER基础技术:DEVICEMAPPER https://coolshell.cn/articles/17200.html 2015年08月26日 陈皓 评论 21 条评论 48,398 人阅读 在上一篇 介绍AUFS的文章 中,大家可以看到,Docker的分层镜像是怎么通过UnionFS这种文件系统做到的,但是,因为Docker首选的AUFS并不在Linux的内核主干里,所以,对于非Ubuntu的Linux分发包,比如CentOS,就无法使用AUFS作为Docker的文件系统了。于是作为第二优先级的DeviceMapper就被拿出来做分层镜像的一个实现。 Device Mapper 简介 DeviceMapper自Linux 2.6被引入成为了Linux最重要的一个技术。它在内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,它包含三个重要的对象概念,Mapped Device、Mapping Table、Target device。 Mapped Device 是一个逻辑抽象,可以理解成为内核向外提供的逻辑设备,它通过Mapping Table描述的映射关系和 Target Device 建立映射。Target device 表示的是 Mapped Device 所映射的物理空间段,对 Mapped Device

Mybatis-配置解析

白昼怎懂夜的黑 提交于 2020-03-12 10:11:51
1.配置解析 1.核心配置文件 mybatis-config.xml MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下: configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments (环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器) 2.environments-环境配置 MyBatis 可以配置成适应多种环境, 不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。 注意一些关键点: 默认使用的环境 ID(比如:default=“development”)。 每个 environment 元素定义的环境 ID(比如:id=“development”)。 事务管理器的配置(比如:type=“JDBC”)。 数据源的配置(比如:type=“POOLED”) 可以设置多套运行环境,但只能同时使用一套

IDEA 常用插件事Java开发者利器

╄→尐↘猪︶ㄣ 提交于 2020-03-12 04:32:16
JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用它都可以实现热部署。收费的,破解比较麻烦。不过功能确实很强大。算是开发必备神器了。热部署快捷键是control+F9/command+F9。 .ignore git提交时过滤掉不需要提交的文件,很方便,有些本地文件是不需要提交到Git上的。 CamelCase 使用方法: 将不是驼峰格式的名称,快速转成驼峰格式,安装好后,选中要修改的名称,按快捷键shift+alt+u。 Lombok plugin 开发神器,可以简化你的实体类,让你i不再写get/set方法,还能快速的实现builder模式,以及链式调用方法,总之就是为了简化实体类而生的插件。 Mybatis plugin 官方地址:https://www.codesmagic.com/mybatisplugin 可以在mapper接口中和mapper的xml文件中来回跳转,就想接口跳到实现类那样简单。 提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及SQL标签 ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C) 快捷键生成@Param注解 XML中编辑SQL时, 括号自动补全 XML中编辑SQL时, 支持参数自动补全(基于

Spring Boot-整合MyBatis

限于喜欢 提交于 2020-03-12 02:00:44
Spring Boot整合MyBatis 引入MyBatis和数据库驱动依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.15</version> </dependency> 使用mybatis-spring-boot-starter,这样可以减少很多配置 减少XML配置; 自动检测存在的DataSource; 自动使用SqlSessionFactoryBean传递DataSource作为一个输入创建和注册一个SqlSessionFactory实例;