不积跬步,无以至千里;不积小流,无以成江海。

Mybatis学习之路—使用注解配置映射

JAVA 康康 991℃ 0评论

一、配置基本的增删改查及结果集

直接在mapper接口方法名上使用注解

@Insert("insert into employee (username,salary,deptID) "
+ " values(#{username},#{salary},#{dept.id})")
public int insertEmp(Employee emp);

@Update("UPDATE employee SET "
+ " username=#{username}, salary=#{salary} "
+ " WHERE id=${id}")
public int update(Employee emp);

@Delete("DELETE FROM employee WHERE id=#{id}")
public int delete(Integer id);

@Select("SELECT * FROM employee")
@Results( //如果列名称和属性名称相同可以不必配置
{
@Result(id=true,column="id",property="id"),
@Result(column="username",property="username"),
@Result(column="salary",property="salary")
}
)
public List<Employee> findEmps();

@Select("SELECT * FROM employee WHERE id=#{ids}")
public Employee FindById(Integer id);

调用方式和xml配置一样

二、配置映射关系

注意:如果数据库列名和属性名称不同 必须使用如下定义映射
@Results(
{
@Result(id=true,column="id",property="id"),
@Result(column="username",property="username"),
@Result(column="salary",property="salary")
}

 

1.一对一的配置

one=@One(select="com.cwk.dao.DepartmentMapper.findById")
column="deptID" :外键
property="dept" :属性名称
调用 DepartmentMapper中的方法 findById

@Select("SELECT * FROM employee WHERE id=#{id}")
@Results( //如果列名称和属性名称相同可以不必配置
{
@Result(id=true,column="id",property="id"),
@Result(column="username",property="username"),
@Result(column="salary",property="salary"),
@Result(column="deptID",property="dept" ,one=@One(select="com.cwk.dao.DepartmentMapper.findById"))
}
)
public Employee findEmpWidthDept(Integer id);

 

2. 一对多配置
column="id" : 传给调用方法的参数
property="emps" 获取到的结果将付给此属性
@Many(select="com.cwk.dao.EmployeeMapper.findEmpByDeptId")
调用指定的查询方法 (返回集合类型)

//通过id查询 部门+所有员工 (一个部门对应多个雇员)
@Select("SELECT * FROM department where id=#{id}")
@Results({
@Result(id=true,column="id",property="id"),
@Result(column="dept_name",property="deptName"),
@Result(column="dept_desc",property="deptDesc"),
@Result(column="id" ,property="emps" ,many=@Many(select="com.cwk.dao.EmployeeMapper.findEmpByDeptId"))
})
public Department findDeptAndEmpsById(int id);

 

总结:使用注解配置省去了xml配置文件 使用比较方便,但是在配置复杂的关联关系时没有xml配置方式容易,其次在维护时xml配置更好,所以在项目比较小时可以使用注解方式。

 

转载请注明:左手代码右手诗 » Mybatis学习之路—使用注解配置映射

喜欢 (1)or分享 (0)
发表我的评论
取消评论

 

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址