mybatis入门02

126 阅读2分钟

1. mybatis的xml配置文件(部分配置)

1.1 属性(properties)

这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 的properties属性文件中配置,亦可通过 properties 元素的子元素来传递。

<properties resource="org/mybatis/example/config.properties">
  <property name="username" value="dev_user"/>
  <property name="password" value="F2Fa3!33TYyg"/>
</properties>

1.2 类型别名(typeAliases)

类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。

<typeAliases>
  <typeAlias alias="Author" type="domain.blog.Author"/>
</typeAliases>

也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如

<typeAliases>
  <package name="com.wangdao.bean"/>
</typeAliases>

1.3 映射器(mappers)

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<!-- 要通过接口找到对应的映射文件,类名+方法名 = namespace+id -->
<!-- 编译后把xxxMapper.xml和xxxMapper.class放到同一路径下 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

2. Log4j 日志框架

通过IO输出到日志文件,消耗系统资源

2.1 引入依赖

log4j

2.2 复制配置

2.3 日志输出级别

debug > info > warn > error > fatal

3. 输入映射

单个参数,多个参数,注解

3.1 单个参数

#{value}

  • 值类型
    • value写任意字符
  • javabean
    • value写bean的成员变量名,实际上是调用bean的get()
  • map
    • value写map的key,实际用key对应的value

3.2 多个参数

根据传入参数的顺序,分别对应arg0,arg1...或param1,param2

3.3 使用注解

@Param 可见即可用

可见:@Param(" ")中的value值

可用:value可以直接在#{}中使用

4. 输出映射

4.1 值类型

  • 单个结果
    • resultType="值类型"
  • 多个结果
    • resultType="值类型",方法的返回值为数组或list

4.2 Bean类型

查询结果的列名与bean的成员变量名对应

不一致的可以在sql中使用as修改查询结果的列名

实际使用的是bean对象的setter()

4.3 resultMap

封装javabean

让查询结果的列名和javabean的成员变量名产生映射关系

<resultMap id="resultMap的id值" type="封装的bean全限定名">
  <!--id为主键映射-->
  <id property="" column=""/>
    <!--result为非主键映射-->
  <result property="username" column="author_username"/>
</resultMap>

property为bean的成员变量名

column为数据库查询结果的列名

<select id="selectBlog" resultMap="resultMap的id值">
  
</select>