Tag-MyBatis

 2017-03-03 17:26:26 |  5 Comments  |  Spring MyBatis

搭建SSM (Spring+SpringMVC+MyBatis)

Spring+SpingMVC的搭建参考博文 —— 搭建SpringMVC

这里主要记录SpringMVC与MyBatis的整合。

准备工作

数据库使用MySql,创建一张测试表:

 CREATE TABLE `emp` (
  `ID` int(4) NOT NULL AUTO_INCREMENT,
  `NAME` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `AGE` int(11) DEFAULT NULL,
  `BIRTHDAY` date DEFAULT NULL,
  PRIMARY KEY (`ID`)
)
 2017-01-08 16:28:08 |  1 Comments  |  MyBatis

MyBatis Dynamic SQL

    MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。

  • if

    动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如:

<select id="findRoles" resultType="roleList">
    SELECT * FROM t_role 
    WHERE 1 = 1
    <if test="roleName != null and roleName != ''">
        AND roleName like concat('%',#{roleName},'%'}
    </if>
</select>        
 2017-01-07 23:37:24 |  1 Comments  |  MyBatis

MyBatis Cache

    MyBatis对缓存提供了支持,默认情况下只开启了一级缓存,要开启二级缓存需要进行配置。为了验证这个过程,我们创建log4j.properties:

log4j.rootLogger=DEBUG , stdout  
log4j.logger.mrbird.leanote=DEBUG   
log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 

    在mybatis-config.xml文件中配置它:

<settings>
    <setting name="logImpl" value="LOG4J"/>
</settings>

 

 2017-01-06 10:34:22 |  1 Comments  |  MyBatis

MyBatis级联

    MyBatis中的级联分为3种:association,collection和discriminatior:

    ◼ association:代表一对一关系,比如学生和学生证是一对一关系。

    ◼ collection:代表一对多关系,比如学生和课程是一对多关系,一个学生可以有多个课程。

    ◼ discriminator:鉴别器,它可以根据实际选择采用哪个类作为实例,允许你根据特定的条件去关联不同的结果集。

    为了学习这些东东,设计一个模型关系:

 

 2017-01-05 16:12:54 |  0 Comments  |  MyBatis

MyBatis映射器

  • select

mapUnderscoreToCamelCase

    数据库字段名一般采用下划线命名规则,而java中的字段名用的是驼峰命名规则。

    如果数据库字段命名规范,我们可以在settins中配置mapUnderscoreToCamelCase为true:

<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

    MyBatis就会自动将数据库字段名转换为JavaBean的字段名,比如:

<select id="getRole" parameterType="long" resultType="role">
    <![CDATA[select * from t_role where id = #{id}]]>
</select>