SSM框架之_Mybatis入门笔记,深入理解(三):配置解析篇

SSM框架进阶笔记,阿里达摩院分享必是精品 SSM框架过时了吗? 非常负责任的告诉你SSM框架不过时,现在很多的系统都是用的SSM的基础上来搭建的。并且越来越多的公司选择 SSM 框架开发项目,包括一线大厂; 有人说:企业中的主流框架是Spring Boot? Spring Boot 是在强大的 Spring 帝国生态基础上面发展而来,发明 Spring Boot 不是为了取代 Spring ,是为了让人们更容易的使用 Spring 。所以说没有 Spring 强大的功能和生态,就不会有后期的 Spring Boot 火热, Spring Bo 阅读详情

配置解析


核心配置文件

mybatis-config.xml

配置文件中能配置的内容:配置顺序不对会报错

configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
<!-- 注意元素节点的顺序!顺序不对会报错 -->

环境配置(environments)

  • 配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,必须指定其中一个为默认运行环境(通过default指定)
  • 子元素节点:environment
<environments default="development">
 <environment id="development">
   <transactionManager type="JDBC">
     <property name="..." value="..."/>
   </transactionManager>
   <dataSource type="POOLED">
     <property name="driver" value="${driver}"/>
     <property name="url" value="${url}"/>
     <property name="username" value="${username}"/>
     <property name="password" value="${password}"/>
   </dataSource>
 </environment>
</environments>

  • transactionManager:事务管理器,mybatis中由两种事务管理器,JDBC和MANAGED。

    • JDBC:直接使用了 JDBC 的提交和回滚设施,依赖从数据源获得的连接来管理事务作用域。
    • MANAGED :由于一些老的技术,spring已经不用这个了。

    使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。

  • dataSource:数据源,有三种数据源类型

    • UNPOOLED:不用连接池,每次请求都会打开和关闭数据库连接。
    • POOLED:使用连接池
    • JNDI:EJB用的,现在用的少

Mybatis的默认事务管理器就是JDBC,连接池:POOLED


属性(properties)

配置属性,可以通过加载外部文件配置,也可以mybatis配置文件中配置。

示例:创建外部配置文件(properties类型)

注意:配置时,属性值不需要加双引号,并且之前在配置文件中&的转义字符&amp;也可以直接写成&

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8
username=root
password=123456

在配置mybatis配置文件中加载

<configuration>
   <!--导入properties文件-->
   <properties resource="db.properties"/>

   <environments default="development">
       <environment id="development">
           <transactionManager type="JDBC"/>
           <dataSource type="POOLED">
               <!-- 可以直接在下边通过名字引用 -->
               <property name="driver" value="${driver}"/>
               <property name="url" value="${url}"/>
               <property name="username" value="${username}"/>
               <property name="password" value="${password}"/>
           </dataSource>
       </environment>
   </environments>
</configuration>

在mybatis配置文件中配置

<properties resource="db.properties">
	<property name="username" value="root"/>
  	<property name="password" value="1234"/>
</properties>

如果同时在外部文件和mybatis配置文件中都配置的话,以外部文件配置为主,外部配置文件优先级更高。


映射器(mappers)

定义映射SQL语句文件。

四种引入资源的方式:

  • 相对于类路径的资源引用,引入mapper.xml文件(实现接口的文件),通过斜杠分隔
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
</mappers>
  • 完全限定资源定位符(URL),不使用
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
</mappers>
  • 映射器接口实现类的完全限定类名,通过点分割

    需要接口类和配置文件名一致,并且位于同一目录下

<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
</mappers>
  • 将包内的映射器接口实现全部注册为映射器

    需要接口类与配置文件名一致,并且位于同一目录下

<mappers>
    <package name="org.mybatis.builder"/>
</mappers>

字标签:mapper

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--绑定接口-->
<mapper namespace="top.jarvaniv.dao.UserMapper">
</mapper> 

namespace:命名空间

  • 必须与某个接口名相同
  • 接口中的方法名与映射文件中sql语句的id一一对应,且id值保证唯一
  • 命名规则:包名+接口名

类型别名(typeAliases)

  • 第一种方式

使用格式:

<typeAliases>
  <typeAlias alias="别名" type="某个类的具体路径"/>
    <!-- 例如: -->
  <typeAlias alias="Blog" type="domain.blog.Blog"/>
</typeAliases>

之后,便可以在任何地方用Blog代替domain.blog.Blog,实现相同的效果。

  • 第二种方式

    指定包名,改包下面的所有需要的javaBean,都会有一个默认别名,默认别名的格式是:类名首字母小写。

    <typeAliases>
       <package name="com.kuang.pojo"/>
    </typeAliases>
    

    如果这个包下有一个javaBean,名字是UserList,那么她的别名就是userList。

  • 注解的形式

可以直接给javaBean(实体类)添加注解,设置别名:

@Alias("user")
public class User {
  ...
}

注释形式不受第二种方式的限制,即使设置了包名,如果有注解,则注解的优先级高于第二种形式。

java类型内建的类型别名,不区分大小写。

八大基本类型:在开头+_

image-20201028195213301

封装类:首字母小写

image-20201028195309651


设置

完整的settings配置如下:

<settings>
 <setting name="cacheEnabled" value="true"/>
 <setting name="lazyLoadingEnabled" value="true"/>
 <setting name="multipleResultSetsEnabled" value="true"/>
 <setting name="useColumnLabel" value="true"/>
 <setting name="useGeneratedKeys" value="false"/>
 <setting name="autoMappingBehavior" value="PARTIAL"/>
 <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
 <setting name="defaultExecutorType" value="SIMPLE"/>
 <setting name="defaultStatementTimeout" value="25"/>
 <setting name="defaultFetchSize" value="100"/>
 <setting name="safeRowBoundsEnabled" value="false"/>
 <setting name="mapUnderscoreToCamelCase" value="false"/>
 <setting name="localCacheScope" value="SESSION"/>
 <setting name="jdbcTypeForNull" value="OTHER"/>
 <setting name="lazyLoadTriggerMethods"value="equals,clone,hashCode,toString"/>
</settings>
SSM MyBatis实验报告 Sqlsession是MyBatis的关键对象,是执行持久化操作的独享,它是应用程序与持久层站之间执行交互操作的一个但像成对象,也是MyBatis执行持久化操作的关键对象。5.SqlSessionFactory是MyBatis的关键对象,它是单个数据库映射关系经过编译后的内存镜像。所谓的生命周期就是第一个对象应该存活的时间,比如一些对象一次用完后就要关闭,使它们被。)销毁,以避免继续占用资源,所以我们会根据每一个组件的作用去确定其生命。6. MyBatis生命周期1的过程?3. MyBatis框架的优点? 阅读详情

相关推荐

超实用的SSM框架项目【米米商城】教程

今天分享的是SSM框架项目-米米商城,搭建ssm框架项目的详细步骤如下: 搭建ssm项目的步骤: 1》新建maven工程 2》修改目录,修改pom.xml文件 3>添加ssm项目框架的所有依赖 4》拷贝jdbc.porperties到resources目录下 5》新建applicationContext_dao.xml文件,进行数据库服务层的配置 6》新建applicationContext_service.xml文件,进行业务逻辑层的配置 7》新建spirngmvc.xml文件,配置spring

d586497的博客 2071

【重温SSM框架系列】15 - SSM系列博文总结【SSM杀青篇】

SSM总结Spring部分1 - Spring快速入门(配置文件及API详解)2 - Spring配置数据源连接池(手动创建与配置)3 - Spring注解开发(注解代替xml文件配置)4 - Spring集成web环境(三层结构和配置监听器)SpringMVC部分Mybatis部分 大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。 如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never let it res

1+1=王的博客 4532

SSM框架深度解析:Spring MVC工作流程、MyBatis缓存与三级缓存实战

在Java企业级开发中,依赖注入(DI)和面向切面编程(AOP)是构建松耦合、可维护应用的核心设计思想。Spring框架通过其IoC容器实现了这些思想,其中三级缓存机制巧妙地解决了单例Bean的循环依赖问题,这是理解Spring Bean生命周期的关键。在Web层,Spring MVC基于DispatcherServlet的前端控制器模式,通过HandlerMapping、HandlerAdapter和ViewResolver等组件协同工作,处理请求分发与视图渲染,其拦截器(Interceptor)为权限校

weixin_34275734的博客 344

SSM从入门到实战:2.1 MyBatis框架概述与环境搭建

本文介绍了MyBatis框架的基础知识,包括其概念、特点、核心组件以及与其他ORM框架的对比。文章详细讲解了MyBatis的工作流程、环境搭建方法,并提供了Maven依赖配置示例,帮助开发者快速入门MyBatis开发。通过本文,读者可以掌握MyBatis的基本使用,为后续深入学习打下基础。

2326

SSM框架基础配置文件实战教程

Mapper接口定义了与数据库交互的方法,每个方法都对应一个SQL语句。MyBatis使用动态代理生成实现类,使得开发者可以像调用普通Java方法一样调用Mapper接口的方法。一个典型的Mapper接口定义可能如下所示:// 其他相关数据库操作...通过本章节的介绍,您已经掌握了如何配置和优化Log4j和Logback这两种流行的Java日志框架。理解这些配置能帮助您更好地管理应用程序的日志记录过程,并通过日志来跟踪问题和分析性能。

weixin_42327217的博客 744

SSM框架实战搭建与问题解析

SSM框架是Java EE开发中非常流行的技术栈组合。它由Spring、SpringMVC和MyBatis三个开源框架组成,分别用于企业级应用的业务逻辑层、控制层和数据持久层。SSM框架能够提供高度模块化和可配置性的应用程序架构,广泛应用于中大型项目的开发中。控制反转(Inversion of Control,IoC)是Spring框架的基石,它实现了组件间的解耦合。依赖注入(Dependency Injection,DI)是实现IoC的一种方式,允许容器在运行时动态地将某种依赖关系注入到对象中。

weixin_35414260的博客 885

SSM框架的几个重要配置文件

这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿出来一起分享一下,希望有不足的地方大家批评指正~~~ 首先   这篇文章暂时只对框架中所要用到的配置文件进行解释说明,而且是针对注解形式的,框架运转的具体流程过两天再进行总结. spring+sp...

ghjzzhg的博客 6881

SSM框架入门实战示例详解

SSM(Spring + Spring MVC + MyBatis)是当前Java Web开发中最主流的框架整合方案,具有模块化清晰、开发效率高、维护性强等优点。本章将从整体架构入手,介绍Spring、Spring MVC与MyBatis各自的职责分工,并引导读者完成基础开发环境的搭建。在 Spring 中,Bean 是由 Spring IoC 容器所管理的对象。Bean 的定义通常通过 XML 配置文件或注解方式完成,其生命周期包括以下几个阶段:实例化。

weixin_32389853的博客 790

【SSM框架】Mybatis详解07(源码自取)之动态代理的实现

继续进行复习带你学会框架中实现动态代理,加油!!!期待最后的源码分析哦!!!

muzi_longren的博客 1万+

SSM框架入门实战:从零开始构建Java Web应用

Spring 是一个开源的轻量级Java平台,它提供了一种全面的编程和配置模型,为现代基于Java的企业应用程序开发提供了一个健壮、灵活、高效的解决方案。Spring的核心是提供了一种依赖注入(DI)的方式,可以用来管理对象及其依赖关系,使得企业应用的开发变得更加容易。SpringMVC通过异常处理机制可以提供统一的错误处理方式,简化了代码并提高了代码的可维护性。通过使用注解,开发者可以在控制器类中声明处理特定异常的方法。例如,定义一个处理所有异常的方法:// 记录异常信息。

weixin_32005771的博客 1067

深入理解SSM框架:构建高效Java Web系统

在Java开发领域,SSM框架组合是指Spring、SpringMVC和MyBatis三个框架的有机整合。本章节将对这一组合的组成及各自特点进行细致的介绍,帮助读者理解SSM框架的核心价值与应用场景。切面的定义涉及到将通知应用于特定的切入点。在Spring中,可以使用注解或XML来定义切面。@Aspect@Component// 日志逻辑在上述示例中,是一个切面,它使用@Before注解定义了一个前置通知,该通知会在包下任意类的任意方法执行前执行。

weixin_42113456的博客 703

SSM从入门到实战:2.4 MyBatis配置文件详解

📝 文章摘要 本文深入解析MyBatis核心配置文件(mybatis-config.xml)的结构与配置技巧,主要内容包括: 配置文件结构:按顺序解析properties、settings、typeAliases等9大核心元素 属性配置:支持内联定义/外部文件加载/URL加载/混合方式,详解属性优先级规则 关键设置项:包含缓存、懒加载、驼峰映射等20+运行时参数配置示例 最佳实践:提供数据库连接、多环境配置等实用模板,如分环境属性文件示例 适合希望系统掌握MyBatis高级配置的开发人员,通过清晰的代码示

1237

SSM框架整合实战:小型Web应用项目源码解析

在Java开发领域,Spring框架无疑是使用最为广泛和影响力最强的开源框架之一。Spring的核心理念是提供一种全面、模块化、轻量级的方式来简化Java应用的开发。它不仅包含了一个企业级开发中所需要用到的所有功能,还能将不同的技术解决方案以统一的方式集成起来。MVC(Model-View-Controller)设计模式是一种被广泛使用的软件设计模式,旨在将应用程序的业务逻辑(Model)、用户界面(View)和控制逻辑(Controller)分离。这种分离可以提高系统的可维护性、可测试性和可扩展性。

weixin_42571280的博客 1117

SSM框架简单介绍

SpringMVC属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。SpringMVC分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。...

m0_54849806的博客 1万+

SSM整合技术栈个人笔记与实战指南

本文还有配套的精品资源,点击获取 简介:SSM整合是Java Web开发中利用Spring、SpringMVC和MyBatis三大框架进行企业级应用开发的技术方案。本笔记深入解析了每个组件的功能及SSM整合的关键步骤,包括环境配置、Spring与SpringMVC的配置细节、MyBatis的SQL操作、实体类和Mapper接口设计,以及Service和Controller层...

weixin_42627459的博客 1058

SSM框架整合实战项目(Spring+SpringMVC+MyBatis)基于Maven构建

SSM(Spring+SpringMVC+MyBatis)作为Java Web开发的经典轻量级框架组合,凭借其良好的分层结构和松耦合设计,广泛应用于企业级应用开发。Spring 负责全局的Bean管理与依赖注入,实现业务逻辑的集中管控;SpringMVC 作为前端控制器,接收并分发HTTP请求,实现表现层的清晰解耦;MyBatis 则通过SQL映射机制完成持久层操作,兼顾灵活性与可维护性。在Maven项目中,三者通过Spring容器进行无缝整合:SpringMVC的加载Web层上下文,而。

weixin_29840475的博客 893

那么多SSM框架整合,这篇用心整理的SSM框架笔记不会还有程序员没看过吧?

记得大二上学期老师第一次讲 SSM 整合的时候,自己竟然浑浑噩噩睡过去了。平时上课不好好听讲,后来听说期末要交大作业了,只能被迫去网上自学。不对。。。少打个S,不过这真的是我第一次搜 SSM 的资料,当时室友还说我变态。不过从那天起我带着尴尬的表情和搞定期末大作业的决心把 SSM 框架的整合认真研究了一遍。

m0_71777195的博客 1475

【远控使用】Cobalt Strike横向渗透域控

categories: 知识积累 top: FALSE copyright: true abbrlink: 1643719980 #date: '2021-8-7 12:00:00' #description:1400x780 tags: 内网渗透 提权 渗透测试 黑客工具photos: https://gitee.com/gylq/cloudimages/raw/master/img/image-20210826182104275.png 前言 Cobalt Strike.

孤桜懶契 2704

java优雅的SSM框架(五):SSM整合(由浅入深,深度解读)

什么是SSM框架? SSM框架,是Spring + Spring MVC + MyBatis的缩写,这个是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。 那么SSM框架有具体有哪些优点呢? 对于SSM框架的具体优点我主要总结了以下几点: (1)Spring的优势: Spring的IOC特性将对象之间的依...

weixin_38322576的博客 5602

芯片低功耗设计实战:CPF与UPF流程选择指南(附工具对比)

本文深入探讨了芯片低功耗设计实战中CPF与UPF流程的选择策略。文章从两者本质差异与演进脉络出发,结合Cadence与Synopsys工具链的深度支持实况,为工程师提供了基于项目场景的决策框架。重点分析了在混合工具链环境下如何实施流程与验证,并强调了利用Spyglass等工具确保功耗意图无损传递的关键技巧,旨在帮助团队做出明智的流程抉择,提升设计效率与可靠性。

weixin_29197051的博客 408

ESP32-BLE学习1-建立简单的server

start 学习之前,我想尝试使用ESP32的demo建立一个简单的server与手机接进行最基本的数据通信。 这里有BLE的简单讲解BLE资料 因为BLE的连接是具有主从机特性的,就像SPI,USB一些请求只能由主机端发起,连接也需要主机端发起。所以手机要想连上ESP32,就得将ESP32设置为从机模式。 从资料上可以看到,从机端通过Notify通知主机,所以从机就是GATT Server。 在进行ESP32 的demo学习之前,得大体看下ESP32的蓝牙组成,ESP32支持经典蓝牙和低功耗蓝牙4.2,

Spark的博客 1845
上一篇: SSM框架之_Mybatis入门笔记,详解快速上手(二):增删改查篇
下一篇: 什么是模块化?模块化有哪些优缺点
折纸之泪
博客等级 码龄7年 25粉丝 72原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值