myBatis知识点复习

1.mybatis是典型的面向接口编程,接口的名称作为对应映射XML的namespace,XML的Id则和接口的方法对应。映射的XML需要注册到mybatis.config.xml配置文件中

2.mybatis的核心是SqlSessionFactory,任何一次和数据库的交互都需要使用SqlSessionFactory.openSession()方法获得一个和数据库的连接,然后进行操作

3.标签

propertie:引入外部配置文件   比如datasource的配置单独写一个配置文件,然后通过此标签引入

settings:最重要的一个标签可以开启很多mybatis的特性,比如开启下划线驼峰映射

TypeAliases: 默认类名小写,通过alias属性指定 可以通过packages 批量指定类名 当前包和后代包都起默认别名,在类名上也可以用@Alias注解指定

plugins:加入插件

enviroments:可以配置多种环境,trsanctionManager属性指定事务管理器,mybatis内置JDBC和MANAGE两种,datasource指定数据源

databaseIdProvider: type属性标明具体数据库厂商

mappers: 注册映射sql

4.获得插入主键

支持自增主键数据库:useGenerateKey

不支持自增主键数据库:selectKey

5.参数处理

单参:直接 #{参数名}取出

多参:mybatis特殊处理,封装成一个map,可用param1,param2,param3...取出

          或者在接口中用@Param注解   @Param("variableName") 制定后可用#{variableName}取出

如果多参正好是POJO的所有字段,直接传入POJO

否则可以传入Map(如果多参不是业务模型中的数据,但是经常使用,推荐来编写一个TO<TransferObject>)

如果是Collection,如list、set 类型或者数组会把传入的集合封装在map中

6.#和$的区别

除了$是预编译直接替换而#是使用占位符替换的区别外,$符号在不支持预编译的sql中可以用作替代,如表名称

7.#{variable.jdbcType=xxx}对于这种jdbcType的指定

因为mybatis是使用JDBC.Other代替null值而有些数据库如Oracle不能正确识别这种null值,导致错误。可以在全局配置setting中设置NullFotJdbcType的属性为null,这种jdbcType一般不用写

8.resultType

注意一点,返回类型是集合时,resultType的值为集合中元素的类型

9.resultMap

mybatis最常用的返回,可以自定义。 如果返回对象中包含对象,可用association进行配置,若采用分部查询可以使用setting 的LazyLoadingEnabled 默认为true和AggressiveLazyLoading若开启则只要一个对象触发懒加载,所有设置懒加载的对象全部加载,设置为false只会加载需要的懒加载对象

10.可用collection来表示集合,item为集合的子项

11.动态sql

<IF>

<where> 不用写1==1了

<trim>  prefix ="xx" 前面加上xx,prefixOverrides=“xx” 前面有xx去掉

suffix,suffixOverrides 同理

<choose (when,oherwise)> mybatis中的分支,注意只会进入第一个匹配的分支

<set> 不用管逗号了

<foreach> 遍历

<bind>绑定值

<sql> sql复用

12.内置参数

_Parameter  代表传入的整个参数

_databaseId 代表当前数据库的别名

13.缓存

mybatis自带两级缓存,一级缓存默认开启,二级缓存默认关闭

一级缓存称为本地缓存,与数据库一次会话期间查询到的数据会加入到本地缓存

一级缓存失效的情况:

1.sqlSession不同,每个会话对应一条sqkSession

2.sqlSession相同,查两个同样对象操作之间调用了增删改操作

二级缓存是基于namespace的,也就是说一个mapper下的操作的数据都会对应一个二级缓存

一级缓存关闭会话后数据才保存到二级缓存中

14.mybatis工作原理

1.获取sqlSessionFactory

2.获取sqlSession对象

3.获取接口的代理对象(mapperProxy)

4.执行增删改方法

Detail:

1.利用xmlConfigBuider解析属性文件(mybatis.properties.xml,mapper.xml)生成一个包含所有配置的configuration对象,然后传入DefaultSqlSessionFactory获得一个工厂实例 sqlSessionFactory

2.configration调用openSessionFromDataSource(),然后创建Excuter创建事务,Excuter对象会在开启二级缓存的情况下去二级缓存先找数据(装饰器模式),并执行所有拦截器方法

3.获取接口的代理类实例

MapperProxyFactory.newInstance(...);

这块是通过java的动态代理创建的一个代理对象

4.执行增删改改查

 

批处理

mybatis的批处理需要在mybatis.properties.xml中配置 将sqlSessionFactory传进去,并将excuteType改为batch,然后可以指定接口中方法ID,这样指定的那个方法就会启用批处理

mybatis 四大对象

1.Excuter

2.ParameterHandler 解决mybatis参数解析封装

3.TypeHandler 解决jdbcType和javaType之间的映射

4.statementHandler 解决 sql执行 底层都是jdbc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一、 内容概要 本资源提供了一个完整的“金属板材压弯成型”非线性仿真案例,基于ABAQUS/Explicit或Standard求解器完成。案例精确模拟了模具(凸模、凹模)与金属板材之间的接触、压合过程,直至板材发生塑性弯曲成型。 模型特点:包含完整的模具-工件装配体,定义了刚体约束、通用接触(或面面接触)及摩擦系数。 材料定义:金属板材采用弹塑性材料模型,定义了完整的屈服强度、塑性应变等真实应力-应变数据。 关键结果:提供了成型过程中的板材应力(Mises应力)、塑性应变(PE)、厚度变化​ 云图,以及模具受力(接触力)曲线,完整再现了压弯工艺的力学状态。 二、 适用人群 CAE工程师/工艺工程师:从事钣金冲压、模具设计、金属成型工艺分析与优化的专业人员。 高校师生:学习ABAQUS非线性分析、金属塑性成形理论,或从事相关课题研究的硕士/博士生。 结构设计工程师:需要评估钣金件可制造性(DFM)或预测成型回弹的设计人员。 三、 使用场景及目标 学习目标: 掌握在ABAQUS中设置金属塑性成形仿真的全流程,包括材料定义、复杂接触设置、边界条件与载荷步。 学习如何调试和分析大变形、非线性接触问题的收敛性技巧。 理解如何通过仿真预测成型缺陷(如减薄、破裂、回弹),并与理论或实验进行对比验证。 应用价:本案例的建模方法与分析思路可直接应用于汽车覆盖件、电器外壳、结构件等钣金产品的冲压工艺开发与模具设计优化,减少试模成本。 四、 其他说明 资源包内包含参数化的INP文件、CAE模型文件、材料数据参考及一份简要的操作要点说明文档。INP文件便于用户直接修改关键参数(如压边力、摩擦系数、行程)进行自主研究。 建议使用ABAQUS 2022或更高版本打开。显式动力学分析(如用Explicit)对计算资源有一定要求。 本案例为教学与工程参考目的提供,用户可基于此框架进行拓展,应用于V型弯曲
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值