MyBatis

教你如何开发Mybatis的通用Mapper

点点圈 提交于 2020-03-10 11:13:02
本文档地址: 如何开发自己的通用Mapper 博客排版不如直接在gitosc上查看,建议去上面的链接查看。 #前言 自从发了通用Mapper-0.1.0版本后,我觉得对少数人来说,这可能是他们正好需要的一个工具。至少目前的通用DAO中,很少能有比这个更强大的。 但是对另一部分人来说,使用Mybatis代码生成器(我正在和一些朋友翻译这个文档,地址: MyBatis Generator )生成xml很方便,不需要使用通用Mapper。 实际上如果你无法在自己的业务中提取出通用的单表(多表实际上能实现,但是限制会增多,不如手写xml)操作,通用的Mapper除了能增加你的初始效率以及更干净的xml配置外,没有特别大的优势。 为了更方便的扩展通用Mapper,我对0.1.0版本进行了重构。目前已经发布了0.2.0版本,这里要讲如何开发自己需要的通用Mapper。 #如何开发自己的通用Mapper ##要求 自己定义的通用Mapper必须包含泛型,例如 MysqlMapper<T> 。 自定义的通用Mapper接口中的方法需要有合适的注解。具体可以参考 Mapper 需要继承 MapperTemplate 来实现具体的操作方法。 通用Mapper中的 Provider 一类的注解只能使用相同的 type 类型(这个类型就是第三个要实现的类。)。实际上 method 也都写的一样。 #

Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

↘锁芯ラ 提交于 2020-03-10 10:24:47
上一篇 我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问。但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式,所以这篇,我们就来看看如何使用XML的方式来进行开发。 动手试试 本篇将不具体介绍整合MyBatis的基础内容,读者可以阅读 上一篇:Spring Boot 2.x基础教程:使用MyBatis访问MySQL 来了解该部分内容。 下面的实操部分将基于上一篇的例子之后进行,基础工程可通过文末仓库中的 chapter3-5 目录获取。 第一步 :在应用主类中增加mapper的扫描包配置: @MapperScan("com.didispace.chapter36.mapper") @SpringBootApplication public class Chapter36Application { public static void main(String[] args) { SpringApplication.run(Chapter36Application.class, args); } } 第二步 :在第一步中指定的Mapper包下创建User表的Mapper定义: public interface UserMapper { User findByName(@Param("name")

mybatis入门_配置文件

人盡茶涼 提交于 2020-03-10 09:48:52
主配置文件:SqlSessionConfiguration.xml(用的话需要改基本四项) < ? 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" > < configuration > < environments default = "development" > < environment id = "development" > < transactionManager type = "JDBC" / > < dataSource type = "POOLED" > < ! -- 基本四项 -- > < property name = "driver" value = "com.mysql.jdbc.Driver" / > < property name = "url" value = "mysql:jdbc:///ssm" / > < property name = "username" value = "root" / > < property name = "password" value =

mybatis中mapper.xml文件增删查改

橙三吉。 提交于 2020-03-10 05:54:29
1.mybatis工作原理 2.查询 <select id="方法名" parameterType="方法参数类型" resultType="方法返回值类型,全类名" > select 表中字段名 AS 结果字段名 from 表名 where 条件 <!--注意:结果字段名与属性名保持一致,区分大小写--> </select> 3.插入 <insert id="需要实现的接口里的方法名" parameterType="方法参数名,如果是对象,要写全类名"> insert into 表名 (字段1,字段2,...) values(#{参数1},#{参数2},...) <!--注意属性名区分大小写--> </insert> 4.修改 <update id="updateCustomer" parameterType="com.wang.po.Customer"> update t_customer set username=#{username},jobs=#{jobs} ,phone=#{phone} where id=#{id} </update> 5.删除 <delete id="deleteCustomer" parameterType="Integer"> delete from t_customer where id=#{id} </delete> 6

Java学习的正确打开方式

橙三吉。 提交于 2020-03-10 03:37:19
https://blog.csdn.net/qq_44543508/article/details/102651841 在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。 文章目录 一、Java基础 1、Java基础教学视频 2、Java基础博客文章目录 3、Java基础书籍 二、关于JavaWeb基础 1、JavaWeb基础教程视频 2、关于JavaWeb博客文章 三、关于数据库 1、关系型数据库教学视频 2、非关系性数据库Redis视频 四、关于JDK新特性 五、关于并发编程 六、关于NIO 七、关于ssm框架 1、spring框架视频 2、Mybatis 框架视频 3、SpringMVC框架视频 4、SSM框架博客文章 4.1、spring框架 4.2、Mybatis框架 4.3、SpringMVC框架 4.5、SSM框架整合文章 八

mybatis if判断条件

我的未来我决定 提交于 2020-03-10 00:07:12
mybatis动态sql语句,有的时候需要通过判断来走不同的sql,下面是两种判断String类型的写法 <if test="authStatus=='2'.toString()"> and XXXXXX </if> 或者 <if test="authStatus=='"2"'"> and XXXXXX </if> 来源: CSDN 作者: 小城南 链接: https://blog.csdn.net/cainiaobulan/article/details/104759162

mybatis(一)

僤鯓⒐⒋嵵緔 提交于 2020-03-09 21:53:21
三层架构图解: 入门案例:05-08:(学会其基本的使用,以及注解方式,文件的搭配对应) 代码不用写dao的实现接口: 配置文件必须说名返回值类型到哪里: 09.mybatis注解开发和编写dao实现类的方式: 10. mybatis入门案例中的设计模式分析:(看到这即可,11以后都是自定义分析) 11.自定义Mybatis的分析-执行查询所有分析: 查询所有的分析: 12.Mybatis的分析-创建代理对象的分析 13----------------17 自定义mybatis 都是源码方法实现。 主要讲解了底层原理,建议不要直接看底层,先学会用mybatis实现小项目和demo对具体步骤有了了解再进行底层的学习。 来源: CSDN 作者: 李圣经언니 链接: https://blog.csdn.net/qq_34519470/article/details/104666908

MyBatis的使用

偶尔善良 提交于 2020-03-09 21:51:28
1.使用maven引入依赖: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> 2.在resources目录下编写主配置文件(mybasit.xml): <?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"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> //使用的数据库连接池 <property name="driver" value="com.mysql.jdbc.Driver"/>      //使用的数据库驱动 <property name="url" value="jdbc:mysql:/

IDEA中使用maven整合mybatis与spring

微笑、不失礼 提交于 2020-03-09 16:39:05
整合思路 需要spring通过方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(Sping和mybati整合自动完成). 持久层的mapper都需要有spring进行管理. 整合环境 创建一个新的java工程. mybatis的jar包,spring的jar包 spring和mybatis的整合包 参考: SSM的maven工程的创建 代码操作 一、创建配置文件:applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=

包路径扫描引起的 MyBatis 异常 BindingException

徘徊边缘 提交于 2020-03-09 16:34:17
异常信息 org.apache.ibatis.binding.BindingException:Invalid bound statement (not found): net.mytaotao.usermanager.core.user.service.UserService.getUserById 发现原因 这里的 userService 成了 mybatis 针对 Mapper 产生的代理对象了 。 mapperInterface 是 net.mytaotao.usermanager.core.user.service.UserService 接口,并不是某个 Mapper 接口,所以产生 org.apache.ibatis.binding.BindingException 异常。 导致以上现象的原因 说明 : basePackage 属性支持 Ant 风格的通配符 (这个问题的原因应该和 mybatis 的扫描和加载策略有关,具体源代码我还没看,只是猜测。) 解决问题 由于我的 basePackage 配置的问题 MapperScannerConfigurer 扫描到了 service 包下的接口,但这是错误的,并不是我们希望的。所以修改 basePackage 的配置为 说明 : basePackage 属性支持 Ant 风格的通配符 Ant通配符 ? 匹配任何单字符 *