MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO为数据库中的记录。
主键返回:
在插入一条记录时,我们不设置其主键id,而让数据库自动生成该条记录的主键id,获取这个id有两种方式(如果使用的是mysql这样的支持自增主键的数据库,可以简单的使用第一种方式)
1.使用useGeneratedKeys
和keyProperty
属性
<insert id="insert" parameterType="Student" useGeneratedKeys="true" keyProperty="id">
INSERT INTO student (name,score,age,gender)
VALUES (#{name},#{score},#{age},#{gender});
</insert>
2.使用<selectKey>
子标签
<insert id="insert" parameterType="Student">
INSERT INTO student (name,score,age,gender)
VALUES (#{name},#{score},#{age},#{gender});
<selectKey keyProperty="id" order="AFTER" resultType="int" >
SELECT LAST_INSERT_ID();
</selectKey>
</insert>
逆向工程:
mybatis官方提供了mapper自动生成工具mybatis-generator-core来针对单表,生成PO类,以及Mapper接口和mapper.xml映射文件。针对单表,可以不需要再手动编写xml配置文件和mapper接口文件了。它不支持生成关联查询。
分页:
1.接口
List<User> getUserByLimit(Map<String,Integer> map);
2.Mapper.xml
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
select * from Student limit #{startIndex},#{pageSize};
</select>
PageHelper分页插件:
使用该插件,快速实现查询结果的分页
1.pom.xml中配置依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.6</version>
</dependency>
2.mybatis全局配置文件中配置<plugin>
标签
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
3.在执行查询之前,先设置分页信息
PageHelper.startPage(1,3);PS:查询第一页,每页3条信息