2 Leo Han

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 9w+

Mybatis整合springboot原理分析,MybatisAutoConfiguration,AutoConfiguredMapperScannerRegistrar

本章需要参考之前的两篇博客:Mybatis整合spring原理分析,SqlSessionFactoryBean,MapperScan,MapperScannerRegistrar,MapperScannerConfigurerspringboot自动装配原理,底层源码分析,条件注解实现机制从之前springboot自动装配原理,在资源目录下应该存在META-INF/spring.factories文件,查看mybatis-spring-boot-autoconfigure模块,其下该文件内容如下:

2020-07-11 21:51:41

Mybatis整合spring原理分析,SqlSessionFactoryBean,MapperScan,MapperScannerRegistrar,MapperScannerConfigurer

一般我们在spring整合mybatis可以进行如下处理:@Configurationpublic class SqlSessionConf { @Bean public SqlSessionFactoryBean getSqlSessionFactoryBean(){ SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryB

2020-07-10 12:51:18

Mybatis入门,Mybatis运行原理剖析,Mybatis源码研究,StatementHandler,TypeHandler,SimpleExecutor,ResultHandler

一般我们使用Mybatis按照如下流程处理:public class Bootstrap { private static SqlSessionFactory sqlSessionFactory; static { String config = "mybatis-config.xml"; try (InputStream inputStream = Resources.getResourceAsStream(config)) { s

2020-07-07 20:54:49

5. Mybatis入门,ResultMap级联,association,collection,discriminator,resultMap继承,lazyLoadingEnabled

Mybatis级联分为三种:association,collection,discriminatorassociation:代表一对一关系collection:代表一对多关系discriminator:鉴别器,根据实际选择采用哪个类作为实例

2020-07-03 20:29:38

4. Mybatis入门,参数中#和$的区别

在xml的语句中,${id}相当于是直接替换,例如:ORDER BY ${columnName},则会直接按值替换掉,不会生成PreparedStatement,是直接在SQL层面替换。但是如果使用#{id}会促使MyBatis 生成PreparedStatement并且安全地设置PreparedStatement 参数(=?)值。...

2020-07-02 22:57:55

3. Mybatis入门,动态sql,if条件,choose,trim,foreach循环,bind

if:条件判断语句,单条件choose(when,otherwise) 相当于case whentrim(set,where):辅助语句,主要用来处理一些sql拼装foreach:循环语句<select id=”findActiveBlogWithTitleLike”parameterType=”Blog” resultType=”Blog”>SELECT * FROM BLOG WHERE state = ‘ACTIVE’<if test=”title != null”&gt

2020-07-02 22:30:10

2. Mybatis入门,Mybatis元素,select,insert,update,delete相关属性

Mybatis相关配置元数说明settings元素属性名称作用备注cacheEnabled所有映射器中配置的缓存全局开关默认值为truelazyLoadingEnabled延迟加载全局开关multipleResultSetsEnabled是否允许单一语句返回多结果集(需驱动支持)默认值为trueuseColumnLable使用列标签代替列名,默认值为trueuseGeneratedKeys允许jdbc支持自动生成主键,autoMap

2020-07-02 21:58:05

1. Mybatis入门,基于xml配置和完全基于代码的使用

在程序处理过程中我们一般都需要和数据库进行交互,从数据库获取结果之后需要将相应的结果转换为程序对应实体对象,基于JDBC底层的需要我们进行手动的设置,比较繁琐,为此诞生了例如:hibernate。Mybatis等orm框架(Object Relational Mapping,对象关系映射模型)。一般我们在程序中如果需要使用mybatis一般需要进行如下配置:首先是pom配置: <dependency> <groupId>org.mybatis&lt

2020-07-02 17:03:16

Mysql常用语句,查看数据库,字段重命名,修改数据库、表、字段字符集

一般后台shel登录mysql:mysql -uroot -pmysql中查看所有数据库:show databases;切换数据库:use testDB;列出当前数据库下所有表:show tables;查看表结构信息:desc tableName表字段重命名:alter table tableName change col_old col_new varchar(50);...

2020-05-21 19:42:46

springboot应用启动流程分析,嵌入式tomcat

之前我们分析了下springboot自动装载的原理,现在我们看看springboot应用启动的流程:一般调用如下:// 应用代码 SpringApplication.run(MiddlewareApplication.class, args);// SpringApplication.java public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { ret

2020-07-01 13:50:23

springboot自动装配原理,底层源码分析,条件注解实现机制,EnableAutoConfiguration,AutoConfigurationImportSelector

在springboot中我们构建应用不用在像spring中那么繁琐,必须声明bean,然后才能使用,在springboot只要引入了相关的jar包,则对应的功能会自动加载扩展。要想理解springboot的自动装配原理,我们首先要知道在spring中中比较重要的几个注解:@Import@Configuration比如大家常见的@EnableWebMvc@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented

2020-07-01 11:15:21

springmvc使用范例,底层实现原理,源代码研究,springmvc父子容器

在J2EE的开发中,一般都是基于java servlet规范,很多web容器也实现了相关的规范,比如tomcat,使用原始J2EE servlet开发web应用的时候一般都是在web.xml中配置很多的servlet和对应servlet映射路径,springmvc则简化了这个步骤,使用springmvc之后,一般web.xml配置如下: <context-param> <param-name>contextConfigLocation</param-name>

2020-06-28 16:25:05

java中反射桥接方法Method.isBridge

java在1.5带来了泛型操作,但是在虚拟机底层字节码而言,只有普通方法和变量,没有泛型这一说,为了实现相关功能:public interface IHello<T> { public void sayHello(T t);}public class HelloWorld implements IHello<String> { @Override public void sayHello(String s) { System.out.pr

2020-06-27 13:42:45

spring中事务使用范例,事务传播机制实现逻辑,底层原理,事务回滚,事务嵌套

在java中处理数据库相关逻辑时一般都会用到事务相关处理,如果我们直接使用基于jdbc底层的事务处理,程序一般比较浮渣,spring的声明式事务处理让我们从繁杂的事务处理中得以解脱出来。从前面的spring的其他相关底层实现我们知道,一般遇到相关schema解析的时候,spring都会获取META-INF/spring.handlers中获取对应schema解析处理类来进行处理,我们直接定位到spring事务处理模块spring-tx,获取到对应spring.handlers文件内容如下:http\:/

2020-06-25 21:04:13

spring中load-time-weaver静态aop处理,基于aspectJ的静态aop处理

前面我们已经探讨过基于spring的动态aop处理 spring动态aop处理 spring同时也遵循了aop的标准,提供了静态aop的处理方式。spring的配置增加如下配置开启静态aop: <context:load-time-weaver/>可以看到,这里对应的schema是context,我们在spring-context模块下META-IUNF/spring.handlers中发现内容如下:http\://www.springframework.org/schema/cont

2020-06-23 18:15:08

spring中aop使用示例,底层实现原理,jdk动态代理,cglib动态代理

总所周知,java是一个oop,面向对象的语言,以更贴近现实的描述来构造程序,但是也代理一些不好的或者说不方便的东西,比如当需要为多个不具有继承关系的对象引入同一个公共的行为的时候,如日志,安全检查等,我们只能在每个对象中引用公共行为,会产生大量的重复代码。AOP因此产生,作为oop的一个补充,面向切面编程。AOP中相关术语连接点(JoinPoint):程序执行多测某个特定位置,如方法调用前,方法调用后,方法抛出异常后,类开始初始化前, 类开始初始化后。在spring中一个连接点总是代表一个方法的执行

2020-06-21 23:16:18

spring中bean的获取流程,getBean的实现逻辑

通过之前spring容器启动过程分析,以ClassPathXmlApplicationContext为例说明,我们看到在最后的

2020-06-19 21:34:23

shell中函数定义使用,函数的返回值,库函数

在shell中我们可以将频繁使用的代码整合到一块,形成函数,方便调用,一般shell中方法定义如下:function function_name { commands}函数调用如下:function_name 函数参数列表函数返回值默认情况下,函数会把最后一条命令的状态码当做函数的状态码返回,可以用标准的$?来获取函数的执行的状态码使用return返回指定的状态码在函数中,可以通过return返回指定的状态码:function test001 { echo "hello world

2020-06-18 08:23:16

shell中case语句用法

在shell中case语句一般格式如下:case "变量值" in值1) 指令 ... ;;值2) 指令... ;;*) 指令 ... ;;esac case实例:val=$1case ${val} in1) echo "1" ;;2) echo "2" ;;*) echo "$val for uncertain" ;;esac

2020-06-07 15:56:31

shell中循环,for循环,select循环,while循环,until循环,退出循环指令

for循环有两种格式:array=(one two threee four five)for((i=0;i<${#array[*]};i++))do echo ${array[i]}donefor item in ${array[*]}do echo ${item}donefor第一种格式为:for 变量名 in 变量取值列表do   指令 …done第二种格式为:for((expr1;expr2;expr3))do 

2020-06-07 15:43:18

查看更多

勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取