本章将详细介绍MyBatis的数据插入操作。
准备数据
我们已经在前面章节中创建了数据库,如没有数据,可参考前面章节MYBATIS教程 – 环境搭建创建。
UserMapper.xml映射文件
UserMapper.xml映射文件中将包含所有User相关sql映射语句。
UserMapper.xml中添加insert语句:
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace = "User">
<insert id = "insert" parameterType = "User">
INSERT INTO User (name) VALUES (#{name});
<selectKey keyProperty = "id" resultType = "long" order = "AFTER">
select last_insert_id() as id
</selectKey>
</insert>
</mapper>
参数类型可以是任何类型,如int、float、double或任何类,本例中参数类型User,即在调用SqlSession类的insert方法时,将传入User类的对象。
如需获取插入记录的id,可以使用<selectKey>
标签。
App.java
应用程序main类文件。
App.java
package com.qikegu.demo;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class App {
public static void main(String args[]) throws IOException{
Reader reader = Resources.getResourceAsReader("MybatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlSessionFactory.openSession();
// 创建用户对象
User user = new User("newUser100");
// 插入新用户到数据库
session.insert("User.insert", user);
System.out.println("数据插入成功");
session.commit();
session.close();
}
}
运行
运行查询,输出:
数据插入成功
查看数据库,可以看到新用户已经插入到数据库中:
id | name |
---|---|
1 | user1 |
2 | user2 |
3 | user3 |
4 | user4 |
5 | user5 |
6 | newUser100 |