MyBatis入门程序
什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.(一)、程序环境1、jar...
2024-01-10MyBatis高级映射学习教程
对mybatis基础入门不太清楚的朋友可以参考下本篇文章:MyBatis入门学习教程(一)-MyBatis快速入门。认识MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个...
2024-01-10MyBatis查询缓存实例详解
查询缓存的使用,主要是为了提高查询访问速度。将用户对同一数据的重复查询过程简化,不再每次均从数据库查询获取结果数据,从而提高访问速度。MyBatis的查询缓存机制,根据缓存区的作用域(生命周期)可划分为两种:一级缓存与二级缓存一、一级查询缓存MyBatis一级缓存是基于org.apache.ibatis.c...
2024-01-10Mybatis之对象工厂
前言在上文Mybatis之XML如何映射到方法中讲到结果映射的时候,需要创建好对象,然后再给对象的属性赋值,而创建对象就用到了Mybatis的内置的对象工厂类DefaultObjectFactory,当然Mybatis也提供了扩展机制,用户可以实现自己的对象工厂。对象工厂上文中介绍了结果映射的相关逻辑在DefaultResultSetHandler处...
2024-01-10MyBatis——Java API
Java API既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了。 MyBatis 的 Java API 就是你收获你所做的努力的地方。正如你即将看到的,和 JDBC 相比, MyBatis 很大程度简化了你的代码而且保持简洁,很容易理解和维护。MyBatis 3 已经引入 了很多重要的改进来使得 SQL 映射更加优秀。应...
2024-01-10MyBatis与设计模式的激情碰撞
MyBatis与设计模式的激情碰撞最近一直在研究MyBatis的源码,MyBatis作为国内最为经常使用的持久层框架,其内部代码的设计也是极其优秀的!我们学习源码的目的是什么呢?一方面是对该框架有一个很深入的认识,以便在开发过程中有能力对框架进行深度的定制化开发或者在解决BUG的时候更加得心应...
2024-01-10MyBatis执行动态SQL的方法
大家基本上都知道如何使用 MyBatis 执行任意 SQL,使用方法很简单,例如在一个 XXMapper.xml 中:<select id="executeSql" resultType="map"> ${_parameter}</select>你可以如下调用:sqlSession.selectList("executeSql", "select * from sysuser where enabled = 1");或者你可以在 XXMapper.java 接口中定义如下方法:List<Map> exec...
2024-01-10Mybatis拦截器实现分页
最终dao层结果:public interface ModelMapper { Page<Model> pageByConditions(RowBounds rowBounds, Model record); }接下来一步一步来实现分页。一.创建Page对象:public class Page<T> extends PageList<T> { private int pageNo = 1;// 页码,默认是第一页 private int pageSize = 15;// 每页显示的记录数,默认是15 pri...
2024-01-10MyBatis-Plus之代码生成器
为什么要有代码生成器代码生成器解决什么样的问题和MyBatis一样,解决重复性代码编写的时间成本和易错问题。MyBatis-Plus的代码生成器说明本次我使用的还是低版本2.1.9,目前MyBatis-Plus最新版本为3.3.1。理由很简单,够用。不想盲目的追赶高版本,同时高版本伴随着的不稳定性的存在,企业级应用开...
2024-01-10MyBatis动态SQL,含分页功能
1. 写一个SqlProvider类:public class DynamicSql { public String sql(String sql){ return sql; }}2. 写一个Mapper类:@Mapperpublic interface DynamicMapper { @SelectProvider(type=DynamicSql.class, method = "sql") List< HashMap<String,Object>> get(Stri...
2024-01-10MyBatis自动生成Where语句
最近监控到类似这样一个慢查询:select delete_flag,delete_timefrom D_OrderInfo WHERE ( OrderId is not null and OrderId = N'xxxx') D_OrderInfo表上有一个OrderId的索引,但OrderId字段是Varchar类型。由于开发框架MyBatis自动生成Where条件不会指定参数类型,字符串类型的参数到了SQLServer里就自动成了NVARCHAR(4000)类型...
2024-01-10SSM,MyBatis连接池配置问题
现在是这么个问题,我长时间不去使用这个服务,再次调用,就会报连接已关闭,可是我也配置连接池了,是不是等待时间配置的太短造成了,还是说配置有问题,还是说换druid会很好补充····知道什么问题了这个问题,想问怎么设置自动连接,我看网上那些,没太懂,没有提示那个autoReconnect=true...
2024-01-10Mybatis获取自动增长Id
Mybatis获取自动增长IdMyBatis成功插入后获取自动增长的id1、向xxMapping.xml配置中加上两个配置。<insert id="insertUser" useGeneratedKeys="true" keyProperty="id" parameterType="UserEntity"> INSERT INTO USER VALUES(null,#{userName},#{password},#{realName}) </insert>其中keyProperty的值就...
2024-01-10Mybatis拦截器的实现介绍
MyBatis介绍MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。它支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始...
2024-01-10MyBatis环境资源配置实现代码详解
1. pom.xml文件配置<?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 http://maven.apache.org/xsd/maven-4.0.0.x...
2024-01-10优化MyBatis配置文件中的配置详解
本文研究的主要是优化MyBatis配置文件中的配置的相关内容,具体介绍如下。一、连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://m...
2024-01-10详解java基于MyBatis使用示例
MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始...
2024-01-10MyBatis全局映射文件实现原理解析
全局配置文件为mybatis-config.xml1、properties标签<properties resource="dbconfig.properties"></properties>可以使用properties来引入外部properties配置文件的内容引入方式有两种: ①resource:引入类路径下的资源 ②url:引入网络路径或者磁盘路径下的资源2、settings标签 <settings> <setting name="mapUnderscoreToCamelCa...
2024-01-10MyBatis中多对多关系的映射和查询
先说一下需求: 在页面上显示数据库中的所有图书,显示图书的同时,显示出该图书所属的类别(这里一本书可能同时属于多个类别)创建表: 笔者这里使用中间表连接图书表和图书类别表,图书表中没有使用外键关联图书类别表 而是在中间表中引用了图书主键和类别主键 通过中间表来 表...
2024-01-10Mybatis 开发注解快速入门
快速普及1、mybatis是什么 mybatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。 MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映...
2024-01-10Mybatis延迟加载的实现方式
1、概念:MyBatis中的延迟加载,也称为懒加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。例如在进行一对多查询的时候,只查询出一方,当程序中需要多方的数据时,mybatis再发出sql语句进行查询,这样子延迟加载就可以的减少数据库压力。MyBatis 的延迟加载只是对关...
2024-01-10MyBatis如何调用存储过程与存储函数
目录1、MyBatis调用存储过程2、MyBatis调用存储函数1、MyBatis调用存储过程MyBatis支持使用存储过程的配置。当使用存储过程时,需要设置一个参数“mode”,其值有IN(输入参数)、OUT(输出参数)和INOUT(输入/输出参数)。MyBatis定义存储过程如下:<!-- 存储过程 --><select id="selectSomeThing" statementType="CALLA...
2024-01-10MyBatis 执行动态 SQL语句详解
大家基本上都知道如何使用 MyBatis 执行任意 SQL,使用方法很简单,例如在一个 XXMapper.xml 中:<select id="executeSql" resultType="map">${_parameter}</select>你可以如下调用:sqlSession.selectList("executeSql", "select * from sysuser where enabled = 1");或者你可以在 XXMapper.java 接口中定义如下方法:List<Map> execut...
2024-01-10MyBatis动态SQL实现配置过程解析
动态SQL什么是动态SQL: 动态SQL就是根据不同的条件生成不同的SQL语句ifchoose(when,otherwise)trim(where,set)foreach1、搭建环境建表CREATE TABLE `bolg`( `id` VARCHAR(50) NOT NULL COMMENT '博客id', `title` VARCHAR(100) not null comment '博客标题', `author` VARCHAR(30) not null comment '博客作者', `cr...
2024-01-10MyBatis实现动态查询、模糊查询功能
要实现查询,咱们就先有个数据库,截图如下,其中cityAreaId是外键,本次可以忽略;下面Branches是我的实体类,里面有name和address属性;接口中方法:public List<Branches> finDongTai(@Param("name")String name,@Param("add")String address);//动态public List<Branches> findLike(@Param("name")String name,@Param("add")String ad...
2024-01-10