mapper

SpringBoot+Mybatis实现用户增删改查

旧街凉风 提交于 2020-01-14 05:30:06
用Springboot简单实现一个对用户增删改查的页面 项目环境 IDEA 2019.2 SpringBoot 2.2.0 Mybatis 3.4.0 JDK 1.8 过程及源码 创建SpringBoot项目 对参数进行 点击next,会进入创建依赖包的步骤,这里选择Spring Web。 创建完成后需要完善目录结构如图所示。 在pom文件中添加相关依赖jar包 < ? xml version = "1.0" encoding = "UTF-8" ? > < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0 .0 < / modelVersion > < parent > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter -

Mybatis框架相关知识详解

旧巷老猫 提交于 2020-01-14 03:17:03
Mybatis框架 1、什么是Mybatis? 2、Mybatis的优点 3、Mybatis的缺点 4、Mybatis框架的适用场合 5、#{}和${}的区别是什么 6、实体类中的属性名和表中的字段名不一样,怎么办? 8、编写模糊查询like语句 9、Dao接口的工作原理 10、Mybatis分页原理 11、Mybatis的映射形式 12、使用MyBatis的mapper接口调用时有哪些要求? 13、resultType与resultMap的区别 14、在mapper中如何传递多个参数? 15、Mybatis的Executor执行器 16、Mybatis的动态sql 17、Mybatis的关联查询和实现方式以及区别 18、Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系 19、Mybatis的接口绑定以及其实现方式 20、Mybatis缓存 21、Mybatis延迟加载 22、Mybatis的基本工作流程 23、Mybatis实行一对多的操作方式 24、Mybatis实行一对一的操作方式 1、什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能

mybatis plus生成实体entity没有id

喜夏-厌秋 提交于 2020-01-14 01:59:07
总是写很多重复的增删改查毫无意义,浪费生命,于是乎准备弄一个增删改查代码生成工具。 网上查了一下mybatis plus挺好的,于是乎打开 官网 Quick Start! 按照官网的演示栗子: // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 public class CodeGenerator { /** * <p> * 读取控制台内容 * </p> */ public static String scanner(String tip) { Scanner scanner = new Scanner(System.in); StringBuilder help = new StringBuilder(); help.append("请输入" + tip + ":"); System.out.println(help.toString()); if (scanner.hasNext()) { String ipt = scanner.next(); if (StringUtils.isNotEmpty(ipt)) { return ipt; } } throw new MybatisPlusException("请输入正确的" + tip + "!"); } public static void main(String[] args) { //

Mybatis-Plus入门

北城以北 提交于 2020-01-13 21:05:32
直接看官方文档 https://baomidou.gitee.io/mybatis-plus-doc/#/ 环境配置 https://blog.csdn.net/suzhou_xj/article/details/103956422 Mybatis-plus 1.实体类 @Data @TableName(value = "tb_employee")//指定表名 public class Employee { //value与数据库主键列名一致,若实体类属性名与表主键列名一致可省略value @TableId(value = "id",type = IdType.AUTO)//指定自增策略 private Integer id; //若没有开启驼峰命名,或者表中列名不符合驼峰规则,可通过该注解指定数据库表中的列名,exist标明数据表中有没有对应列 @TableField(value = "last_name",exist = true) private String lastName; private String email; private Integer gender; private Integer age; } 2.Mapper Mapper接口继承BaseMapper public interface EmplopyeeDao extends BaseMapper

Mybatis入门(四)配置别名(二)

社会主义新天地 提交于 2020-01-13 13:19:08
这一章我们练习一下Mybatis的别名,这大大的提高了我们的开发效率 类型别名(typeAliases) 类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,作用在于用来减少类完全限定名的冗余。 目录: 我们只需要配置Mybatis-config文件和UserMapper.xml文件即可: Mybatis-config.xml配置: 添加 typeAliases标签,typeAlias可以自定义包的名字 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--Mybatis核心配置类--> <configuration> <!--引入外部配置文件之后,driver的值都需要用${}来引用db.propertion文件里的id--> <properties resource="db.properties"/> <typeAliases> <!--别名命为User,type是路径--> <typeAlias type="com.hdlf.pojo.User" alias="User"></typeAlias

手打SQL语句?——来试试通用 Mapper吧

做~自己de王妃 提交于 2020-01-13 05:09:17
通用 Mapper是什么 在我们使用MyBatis中,我们需要写大量的SQL语句,包括最基本的一些增删改查,这些简单的SQL语句占用了大量的时间,却不得不写,这时我通用Mapper就出现了。 通用Mapper是一个可以实现任意 MyBatis 通用方法的框架, 项目提供了常规的增删改查操作以及Example 相关的单表操作 。 Github地址 通用Mapper支持的集成 快速入门 导入依赖 创建实体类 通用 Mapper 中,默认情况下是 将实体类字段按照驼峰转下划线形式的表名列名进行转换 创建Mapper 说明 标识主键 @Id 表明该字段是主键 如果实体类中没有一个标记 @Id 的字段, 当你使用带有 ByPrimaryKey 的方法时, 所有的字段会作为联合主键来使用,也就会出现类似 where id = ? and username = ? and password = ? 的情况。 主键策略 @KeySql ( useGeneratedKeys = true ) 表明该字段支持主键的取回(只能在主键上配置) 当执行完插入语句后可以马上将主键取回 注意:当使用主键策略时需保证数据库主键是自增列 当我们在Mapper上继承通用Mapper后继承的方法 通用Mapper也提供了其他拓展的接口 通用Mapper的其他注解 . @Transient 一般情况下

SpringBoot2.0系列教程(十)Springboot框架通过freemarker自动生成service,serviceImpl,controller功能

无人久伴 提交于 2020-01-13 04:43:35
Hello大家好,本章我们通过freemarker自动生成service,serviceImpl,controller功能 。另求各路大神指点,感谢 一:添加freemarker依赖 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> 二:创建service,serviceImpl,controller模板 在 src\test\java\resources\template\generator 下创建 service.ftl package ${basePackageService}; import ${basePackageModel}.${modelNameUpperCamel}; import ${basePackage}.core.universal.Service; /** * @Description: ${modelNameUpperCamel}Service接口 * @author ${author} * @date ${date} */ public interface ${modelNameUpperCamel}Service extends Service<$

毕设之实现阶段二三事

守給你的承諾、 提交于 2020-01-13 02:19:14
本篇文章只是用来记录本人做毕设项目的过程,如能帮助到他人,荣幸之至。一开始打开eclipse不知从何入手,在csdn上看到一篇文章,收获很大,文章链接: https://blog.csdn.net/bieleyang/article/details/77862042 要完成一个功能: 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。 写Mapper.java,将Mapper.xml中的操作按照id映射成Java函数。 写Service.java,为控制层提供服务,接受控制层的参数,完成相应的功能,并返回给控制层。 写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层。 写JSP页面调用,请求哪些参数,需要获取什么数据。 DataBase ===> Entity ===> Mapper.xml ===> Mapper.Java ===> Service.java ===> Controller.java ===> Jsp.

IDEA使用MyBatis时报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

时光怂恿深爱的人放手 提交于 2020-01-13 01:12:59
IDEA的Maven项目,使用MyBatis时报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 该错误是在mybatis中dao接口与mapper配置文件(同名xml文件)在做映射绑定的时候出现问题,就是接口与xml要么是找不到,要么是找到了却匹配不到。 排查步骤: 1.检查target或jar包(如果是模块化成jar包)里,dao对应的同名mapper是否存在。 如果不存在,代表没编译(idea默认不编译xml和properties等文件)。 解决方法:在pom里配置,使其加载这些配置文件。 在 pom.xml的build标签 里,添加上下述代码(如果没用到.properties文件,下半部分不用配置),配置完之后,删除target目录,重新启动项目。 <resources> <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false<

MyBatis 查询结果的缓存

我的未来我决定 提交于 2020-01-12 19:26:41
MyBatis的缓存指的是缓存查询结果,当以后使用相同的sql语句、传入相同的参数进行查询时,可直接从mybatis本地缓存中获取查询结果,而不必查询数据库。 mybatis的缓存包括一级缓存、二级缓存,一级缓存默认是开启的,二级缓存默认是关闭的。 一级缓存: SqlSession级别,在SqlSession中有一个Map,key是由sql语句、参数等信息组成的唯一值,value是查询出来的结果对象。 二级缓存: mapper级别,同一个namespace下的mapper,有一个Map。 二级缓存可以使这些sqlSession做到查询结果共享。 一级缓存 一级缓存默认是开启的。 User user1 = mapper.queryUserById(1); User user2 = mapper.queryUserById(1); 第一次查询时,就将查询结果放到一级缓存中。 如果后续使用的sql语句相同、传入的实参也相同,则结果对象也会相同,直接从一级缓存中获取结果对象,不再查询数据库。 User user1 = mapper.queryUserById(1); sqlSession.commit(); User user2 = mapper.queryUserById(1); 如果此sqlSession调用了commit()方法,会自动清空此sqlSession的一级缓存。