title: Mybatis学习04 date: 2020-01-20 21:48:00 tags:Mybatis学习的第四篇笔记
这次的笔记主要是mybatis中的注解
<!--more-->
1、实体类的注解
-
-
注解的位置应该在setting之后,typeHandlers之前。
-
XML文件中各个配置顺序为:properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,reflectorFactory,plugins,environments,databaseIdProvider,mappers
-
实体类的注解有两种方式
-
将具体的实体类起一个可以自定义的别名,如:
<typeAliases> <typeAlias type="com.neversettle.domain.User" alias="User"/> </typeAliases>
-
将同一包下的所有实体类注解为其名称,如User注解为User及user,官方推荐使用user,实际中User和user都可以,注解方式为:
<typeAliases> <package name="com.neversettle.domain"/> </typeAliases>
-
2、SQL的注解
-
使用SQL注解需要在mybatis核心文件中注册,将之前的 *Mapper.xml 注册换位类的注册即可,具体如下:
<mappers> <!-- 使用XML来实现接口--> <!-- <mapper resource="com/neversettle/dao/UserMapper.xml"/>--> <!-- 使用注解来实现接口--> <mapper class="com.neversettle.dao.UserMapper"/> </mappers>
-
注解在接口中使用,如下:
package com.neversettle.dao; import com.neversettle.domain.User; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper { //获取用户列表 @Select("select * from user") List<User> getUserList(); //删除一个用户 @Delete("delete from user where id = #{id}") void deleteUserById(@Param("id")int id); }
-
增删改查都对应着一个注解的标签,进行相关的操作都需要使用相应的标签。
-
@Param() 是参数的注解,使用在参数的前方,推荐每个参数都是用注解。
-
3、结果集映射
-
如果实体类中的字段和数据库中的字段名称不一样,则可以使用结果集映射。
-
结果集映射写在每个接口相应的实现XML中(如UserMapper.xml)
-
如果只有个别字段不同,则可以只为个别字段映射(相当于注解)
-
使用方法:
<resultMap id="Student" type="com.neversettle.domain.Student"> <result property="passowrd" column="pwd"/> </resultMap>
-
id为映射的名称,是在SQL语句的返回值类型中所写的名称
-
type为实体类
-
result中的property是实体类中的字段名
-
result中的column是数据库中要映射的字段名
-