Mybatis
官方网站:https://mybatis.org/mybatis-3/zh/getting-started.html
什么是 MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
我们就从属性开始说起
resultMap
id属性 :resultMap标签的标识。
type属性:返回值的全限定类名,或类型别名。
autoMapping属性 :值范围true(默认值)|false, 设置是否启动自动映射功能,自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法。而设置为false后,则需要在resultMap内明确注明映射关系才会调用对应的setter方法
id元素 :用于设置主键字段与领域模型属性的映射关系
result元素 :用于设置普通字段与领域模型属性的映射关系
property属性:需要映射到JavaBean 的属性名称。
column属性:数据表的列名或者标签别名。
javaType属性:一个完整的类名,或者是一个类型别名。如果你匹配的是一个JavaBean,那MyBatis 通常会自行检测到。然后,如果你是要映射到一个HashMap,那你需要指定javaType 要达到的目的。
jdbcType属性: 数据表支持的类型列表。这个属性只在insert,update 或delete 的时候针对允许空的列有用。JDBC 需要这项,但MyBatis 不需要。如果你是直接针对JDBC 编码,且有允许空的列,而你要指定这项。
sql元素:这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。
<resultMap id="BaseResultMap" type="com.energy.user.entity.Teacher">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="teacher_name" jdbcType="VARCHAR" property="teacherName" />
<result column="nickname" jdbcType="VARCHAR" property="nickname" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
id, teacher_name, nickname, create_time
</sql>
select:选择,查询语句
id:对应namespace中的方法名;
resultType:Sql语句执行的返回值;
parameterType:参数类型
Insert, update, delete 就不在一一说明了
<!--根据主键查询-->
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from teacher
where id = #{id,jdbcType=INTEGER}
</select>
TODO