
MyBatis
MyBatis学习
lizc_lizc
好好学习,天天向上。
展开
-
MyBatis SQL执行
SQL 语句的执行涉及多个组件 ,其中比较重要的是 Executor、StatementHandler、ParameterHandler 和 ResultSetHandler 。Executor 主要负责维护一级缓存和二级缓存,并提供事务管理的相关操作,它会将数据库相关操作委托给StatementHandler完成。StatementHandler 首先通过 ParameterHandler 完成 SQL 语句的实参绑定,然后通过 java.sql.Statement 对象执行 SQL 语句并得到结果原创 2020-08-01 14:33:24 · 194 阅读 · 0 评论 -
MyBatis接口绑定原理
文章目录获取代理对象MapperProxyMapperMethodMethodSignatureParamNameResolver获取代理对象public class App1 { public static void main(String[] args) { // 加载 MyBatis 配置文件 InputStream is = App1.class.getClassLoader().getResourceAsStream("mybatis-config.xm原创 2020-07-25 13:10:29 · 1821 阅读 · 1 评论 -
MyBatis加载Mapper映射文件
文章目录XMLMapperBuilderparseconfigurationElementbuildStatementFromContextXMLStatementBuilder构造函数parseStatementNodeMapperBuilderAssistantMappedStatementSqlSourceBoundSql总结XMLMapperBuilder用来解析XML中的SQL,MapperAnnotationBuilder用来解析Mapper接口中的注解SQL。这里只分析一下XMLMapper原创 2020-07-25 13:09:32 · 500 阅读 · 0 评论 -
MyBatis加载配置文件
Hello World配置文件mybatis-config.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> <se原创 2020-07-25 13:07:19 · 1518 阅读 · 0 评论 -
MyBatis缓存
缓存使用缓存的作用也是减少 Java 应用程序与数据库的交互次数,从而提升程序的运行效率。比如第一次查询出某个对象之后,MyBatis 会自动将其存入缓存,当下一次查询同一个对象时,就可以直接从缓存中获取,不必再次访问数据库了。MyBatis 有两种缓存:一级缓存和二级缓存。MyBatis 自带一级缓存,并且是无法关闭的,一直存在,一级缓存的数据存储在 SqlSession 中,即它的作用域...原创 2020-02-22 15:59:36 · 213 阅读 · 0 评论 -
MyBatis动态SQL
动态 SQLMyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大...原创 2020-02-22 14:33:17 · 161 阅读 · 0 评论 -
MyBatis返回结果
自动映射MyBatis 会获取结果中返回的列名并在 Java 类中查找相同名字的属性(忽略大小写)。 这意味着如果发现了数据库中的 ID 列和Java类中的 id 属性,MyBatis 会将列 ID 的值赋给 id 属性。通常数据库列使用大写字母组成的单词命名,单词间用下划线分隔;而 Java 属性一般遵循驼峰命名法约定。为了在这两种命名方式之间启用自动映射,需要将mapUnderscoreT...原创 2020-02-21 22:24:01 · 1721 阅读 · 0 评论 -
MyBatis参数处理
参数处理单个参数通过#{参数名}取出参数值接口定义如下public User getUserByUserName(String userName);接口对应的 Mapper.xml 定义如下所示<select id="getUserByUserName" parameterType="String" resultType="com.example...原创 2020-02-18 22:47:58 · 205 阅读 · 0 评论 -
MyBatis获取自增主键
实体类属性如下public class User { private Integer id; private String username; private String userEmail; private String userCity; private Integer age; // 省略get、set方法}如果数据库支持自动生成主键...原创 2020-02-18 08:57:27 · 353 阅读 · 0 评论 -
MyBatis配置
官方文档:https://mybatis.org/mybatis-3/zh/configuration.html#properties新建一个dbconfig.properties来存储数据库的配置信息jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone...原创 2020-02-16 18:12:25 · 128 阅读 · 0 评论 -
MyBatis入门
什么是MyBatisMyBatis 是当前主流的 ORM 框架,是由 Apache 提供的一个开源项目,之前的名字叫做 iBatis,2010 年迁移到了 Google Code,并且将名字改为我们现在所熟知的 MyBatis,又于 2013 年 11 月迁移到了 Github。MyBatis 是一个帮助开发者实现数据持久化工作的框架,它同时支持 Java、.NET、Ruby 三种语言的实现,当...原创 2020-02-16 18:10:03 · 220 阅读 · 0 评论