MyBatis介绍

本文深入探讨了MyBatis框架的使用与优化,包括自定义SQL、存储过程的支持,以及如何通过XML或注解配置实现JavaPOJO与数据库记录的映射。详细介绍了MyBatis的配置流程,从构建SqlSessionFactory到执行SQL语句,再到事务管理,展示了其在提高代码灵活性、解耦SQL与程序代码、利用数据库连接池和动态SQL方面的优势。
描述
  • 持久性框架,支持自定义SQL、存储过程和高级映射
  • 消除了几乎所有的JDBC代码以及参数的手动设置和结果检索
  • 可以使用简单的XML或注解进行配置,并将图元、映射接口和Java POJO映射到数据库记录

流程图

在这里插入图片描述


原理
  • (1)应用程序通过SqlSessionFactoryBuilder从mybatis的配置文件中构建出SqlSessionFactory
<!-- mybatis-config.xml文件 -->
<configuration>

   <!--使用properties来引入外部properties配置文件的内容 -->
   <properties resource="dbconfig.properties"> </properties>

   <environments default="development">
      <environment id="development">
         <transactionManager type="JDBC" />
         <dataSource type="POOLED">
            <property name="driver" value="${jdbc.driver}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
         </dataSource>
      </environment>
   </environments>
   
   <!-- 将sql映射文件注册到全局配置文件(mybatis-config.xml)中 -->
   <mappers>
      <mapper resource="xxxMapper" />
   </mappers>

</configuration>
//从XML构建SqlSessionFactory
	String resource = "xxx/xxx/mybatis-config.xml";
	
	InputStream inputStream = resources.getResourceAsStream(resource);
	
	SqlsSessionFactory sqlsSessionFactory = new SqlsSessionFactoryBuilder().build(inputStream);
  • (2)SqlSessionFactory开启一个SqlSession,通过SqlSession实例获得Mapper对象并执行Mapper映射的SQL语句,完成对数据库的CRUD和事务的提交
  • 注:sqlSession 是单线程对象,线程不安全,是持久化操作的独享对象,类似jdbc中的Connection,底层封装了jdbc的连接
<!-- xxxMapper文件-->
	<mapper namespace="org.mybatis.example.BlogMapper">
	
  		<select id="selectBlog" resultType="Blog">
   			select * from Blog where id = #{id}
  		</select>
  		
	</mapper>
try (SqlSession session = sqlSessionFactory.openSession()) {

  BlogMapper mapper = session.getMapper(BlogMapper.class);
  
  Blog blog = mapper.selectBlog(101);
}
  • (3)关闭SqlSession,顺序与开启相反。
JDBC–>MyBatis 优化

(1)灵活

  • sql语句写在xml文件里,便于统一管理和优化

(2)sql与程序代码解耦

  • 通过提供DAO层,将业务逻辑与数据访问逻辑分离,便于维护

(3)使用数据库连接池对连接进行管理

  • 统一从DataSource里面获取数据库连接,节约资源,加快连接

(4)提供xml标签,支持动态sql
(5)对数据库操作结果的映射和结果缓存


混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码和Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值