mybatis
Posted wajp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis相关的知识,希望对你有一定的参考价值。
基本信息:
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
特点:
-
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
-
灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
-
解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
-
提供映射标签,支持对象与数据库的orm字段关系映射
-
提供对象关系映射标签,支持对象关系组建维护
-
提供xml标签,支持编写动态sql。
总体流程:
全局配置文件配置
properties标签
Properties标签可以用来加载配置文件.例如,我们可以将数据库的连接信息放入到一个配置文件(db.properties中..)
下为db.properties
db.driverClass=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 db.username=root db.password=root
在全局配置文件SqlMapConfig.xml中引入该配置文件.
然后就可以在全局配置文件的关于数据库的配置信息里使用配置文件的信息了
加载properties的顺序:
1. 先加载<properties>标签下的property标签.观察有没有对应的键值对
2. 加载properties的resource属性指定的配置文件.注意.这一步如果与上一步重名.那么将会覆盖上一步声明的属性.例如:
图中的property声明的属性将会被后加载的配置文件的相同的属性给覆盖
3.优先级最高的是paramterType中传入的值.(这也是在配置文件中写db.username而不写username的原因..避免不必要的覆盖!)
集成:
-
<!--自动扫描业务包-->
-
<context:component-scanbase-package="com.xxx.service"/>
-
<!--数据源-->
-
<jee:jndi-lookupid="jndiDataSource"jndi-name="java:comp/env/jdbc/datasource"/>
-
<!--配置事务-->
-
<bean id="txManager"
-
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
-
<propertyname="dataSource"ref="jndiDataSource"/>
-
</bean>
-
<!--配置基于注解的事物aop-->
-
<tx:annotation-driventransaction-manager="txManager"proxy-target-class="true"/>
以上是关于mybatis的主要内容,如果未能解决你的问题,请参考以下文章
SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper
MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段