草庐IT

MyBatis-yml

全部标签

Mybatis 动态修改 SQL 的两种方式

在SpringAOP中,你可以使用切面(Aspect)来拦截MyBatis执行期间的方法调用,包括修改BoundSql对象中的SQL语句。以下是一个基本的示例:1、创建切面类创建一个切面类,使用@Aspect注解进行标记,并使用@Around注解来拦截目标方法的执行。@Aspect@ComponentpublicclassBoundSqlAspect{@Around("execution(*org.apache.ibatis.executor.BaseExecutor.query(..))&&args(ms,parameterObject,rowBounds,resultHandler)")p

MyBatis整合第三方缓存EHCache

EHCache缓存针对于MyBatis的二级缓存。MyBatis默认二级缓存是SqlSessionFactory级别的。添加依赖 org.mybatis.caches mybatis-ehcache 1.2.1 org.slf4j slf4j-api ch.qos.logback logback-classic 1.4.11 test创建EHCache的配置文件ehcache.xml配置文件名必须为ehcache.xmlEHCache配置文件的配置项说明创建logback日志文件使用SLF4J日志时,log4j日志文件会失效,需要配置SLF4J的具体实现logback来打

Spring-xml(+注解)方式整合第三方的框架-mybatis

1)不需要自定义命名空间:MyBatisSpring整合Mybatis的步骤如下://原始配置mysqlmysql-connector-java5.1.49org.mybatismybatis3.5.10//mybatis配置文件DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">default="development">//mapper配置文件DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper

Mybatis之resultMap详解

resultMap作用是处理数据表中字段与java实体类中属性的映射关系。准备工作①创建数据库&数据表CREATEDATABASE`dbtest1`;CREATETABLE`t_emp`(`emp_id`intNOTNULLAUTO_INCREMENT,`emp_name`varchar(20)DEFAULTNULL,`age`intDEFAULTNULL,`gender`char(1)DEFAULTNULL,`dept_id`intDEFAULTNULL,PRIMARYKEY(`emp_id`))ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8

MyBatis动态SQL教程

动态SQL是MyBatis中非常强大且灵活的功能,允许你根据不同的条件构建SQL查询。这主要通过、、、、等标签实现。查询场景/***根据条件查询员工信息*@paramemp*@return*/ListgetEmpCondition(Empemp);if标签的使用标签:该标签用于根据条件判断是否包含某段SQL片段。 select*fromt_empwhere1=1 andemp_name=#{empName} andage=#{age} andgender=#{gender} 测试@Testpublicvoidtest1(){ SqlSessionsqlSession=SqlSe

MyBatis缓存教程

MyBatis提供了一级缓存和二级缓存的支持,用于提高数据库查询的性能,减少不必要的数据库访问。一级缓存(SqlSession级别的缓存)一级缓存是MyBatis中最细粒度的缓存,也称为本地缓存。它存在于每个SqlSession的生命周期中,当SqlSession被关闭或清空时,该缓存就会被清空。什么是SqlSession?SqlSession是Java程序和数据库之间的会话。作用范围:同一个SqlSession中。举例:@Testpublicvoidtest1(){ //获取SqlSession SqlSessionsqlSession=SqlSessionUtil.getSqlSessio

MyBatis的逆向工程教程

MyBatis逆向工程是指根据数据库表结构自动生成对应的实体类、Mapper接口以及SQL映射文件的过程。这个过程可以通过MyBatis提供的逆向工程工具来完成,极大地方便了开发人员,避免了重复的代码编写,提高了开发效率。创建逆向工程的步骤1、添加依赖&插件 org.mybatis.generator mybatis-generator-maven-plugin 1.3.7 src/main/resources/generatorConfig.xml org.mybatis.gener

MyBatis的延迟加载,你知道是怎么实现的么?

今天了不起来说说这个关于Mybatis,为什么要说Mybatis呢?因为现在面试的时候,除了那些最基础的,比如如何防止SQL注入,以及Mybatis的一级缓存,二级缓存之后,还有一些其他的问题,比如Mybatis的延迟加载,并且需要说一下延迟加载的使用场景。今天了不起就来给大家说一下这个延迟加载到底是怎么回事,以及延迟加载的使用场景。什么是延迟加载?延迟加载也称为懒加载、惰性加载,使用延迟加载可以提高程序的运行效率,针对数据持久层的操作,在某些特定查询的情况下去访问特定的数据库,在其他情况下可以不访问某些数据表,尽量减少SQL的执行,从而达到提高速度的目的,是对数据库操作的一种优化。什么情况下

MyBatis查询功能演示

准备工作①创建数据库&数据表##创建数据库CREATEDATABASE`dbtest1`;##创建数据表CREATETABLE`t_user`(`id`INTNOTNULLAUTO_INCREMENT,`username`VARCHAR(20)DEFAULTNULL,`password`VARCHAR(20)DEFAULTNULL,`age`INTDEFAULTNULL,`gender`CHAR(1)DEFAULTNULL,`email`VARCHAR(50)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=INNODBAUTO_INCREMENT=16DEFAULTCH

MyBatis获取参数值的两种方式

MyBatis获取参数值的两种方式:${}和#{}${}的本质就是字符串拼接,#{}的本质就是占位符赋值。${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。JDBC原生的获取参数方式:字符串拼接的方式Stringname;select*fromwherename="'+name+'";占位符赋值的方式Stringsql="select*fromwherename=?";单个字面量类型的形参publicinterfaceUserMapper{/