1.MyBatis简介
- 可替代JDBC的,提供接口编程。
- 可对SQL进行优化
- 封装少
- 映射多样化
- 支持存储过程
特性:
- 动态SQL
- 自动映射
- 级联
- 缓存
- 注解
代码和SQL分离
MyBatis通过某种方法将数据库和POJO映射起来
<==定义角色POJO==>
package com.moyv.pojo;
public class Role implements java.io.Serializable{
private Integer id;
private String roleName;
private String note;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}
Mybatis需要一个映射文件吧POJO和数据库的表映射起来。
如下:MyBatis映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<mapper namespace="com.moyv.mapper.RoleMapper">
<!--用于定义映射规则-->
<resultMap id="roleMap" type="com.moyv.pojo.Role" >
<id property="id" column="id"/>
<result property="roleName" column="role_name"/>
<result property="note" column="note"/>
</resultMap>
<!--定义查找接口-->
<select id="getRole" resultMap="roleMap">
select id ,role_name,note from t_role where id= #{id}
</select>
<!--定义删除接口-->
<delete id="deleteRole" parameterType="int">
delete from t_role where id= #{id}
</delete>
<!--定义添加接口-->
<insert id="insertRole" parameterType="com.moyv.pojo.Role" >
insert into t_role(role_name, note) values(#{roleName},#{note})
</insert>
<!--定义更新接口-->
<update id="updateRole" parameterType="com.moyv.pojo.Role">
update t_role set
role_name = #{roleName},
note = #{note}
where id = #{id}
</update>
</mapper>
注意namespace属性,它要和一个接口的全限定名保持一致
SQL中的id也要和接口定义的方法保持一致
定义Mybatis映射文件
package com.moyv.mapper;
import com.moyv.pojo.Role;
public interface RoleMapper {
public Role getRole(Integer id);
public int deleteRole(Integer id);
public int insertRole(Role role);
public int updateRole(Role role);
}