title: Mybatis学习04 date: 2020-01-20 21:48:00 tags:Mybatis学习的第四篇笔记
这次的笔记主要是mybatis中的注解
<!--more-->
注解的位置应该在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>
使用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() 是参数的注解,使用在参数的前方,推荐每个参数都是用注解。
如果实体类中的字段和数据库中的字段名称不一样,则可以使用结果集映射。
结果集映射写在每个接口相应的实现XML中(如UserMapper.xml)
如果只有个别字段不同,则可以只为个别字段映射(相当于注解)
使用方法:
<resultMap id="Student" type="com.neversettle.domain.Student"> <result property="passowrd" column="pwd"/> </resultMap>
id为映射的名称,是在SQL语句的返回值类型中所写的名称
type为实体类
result中的property是实体类中的字段名
result中的column是数据库中要映射的字段名
原文:https://www.cnblogs.com/wuren-best/p/12219623.html