创建maven项目工程,引入相关jar包
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
</dependencies>
在mybatis数据库中,创建tb_user表
CREATE TABLE `tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`name` varchar(10) NOT NULL COMMENT '用户姓名',
`birthday` date DEFAULT NULL COMMENT '生日',
`gender` char(1) DEFAULT NULL COMMENT '性别,F-男,M-女',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
编写SqlMapConfig.xml文件,配置数据库信息
<?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">
<configuration>
<!-- 和Spring整合后environment配置都会被干掉 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,目前由mybatis来管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池,目前由mybatis来管理 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/userMapper.xml" />
</mappers>
</configuration>
编写tb_user对应的实体类文件UserModel
package lzgsea.mybatis.model;
import java.util.Date;
public class UserModel {
private Integer id; // 用户id
private String name; // 用户姓名
private Date birthday; // 生日
private String gender; // 性别
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "UserModel [id=" + id + ", name=" + name + ", birthday=" + birthday + ", gender=" + gender + "]";
}
}
在userMapper.xml文件中编写SQL
<?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="userMapper">
<!-- 添加用户 -->
<insert id="insert" parameterType="lzgsea.mybatis.model.UserModel"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into tb_user
(name,birthday,gender) values (#{name},#{birthday},#{gender})
</insert>
<!-- 查询用户 -->
<select id="getUserById" parameterType="int"
resultType="lzgsea.mybatis.model.UserModel">
select * from tb_user where id = #{id}
</select>
<!-- 更新用户 -->
<update id="update" parameterType="lzgsea.mybatis.model.UserModel">
update tb_user set name =
#{name}, birthday =
#{birthday}, gender = #{gender} where id = #{id}
</update>
<!-- 删除用户 -->
<delete id="delete" parameterType="int">
delete from tb_user where id =
#{id}
</delete>
</mapper>
获取SqlSession对象,通过SqlSession的相关方法进行增删改查操作
package lzgsea.mybatis;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import lzgsea.mybatis.model.UserModel;
public class MybatisTest {
public static SqlSession getSqlSession() throws IOException {
// mybatis配置文件
String resource = "SqlMapConfig.xml";
// 得到配置文件的流
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 通过工厂得到SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
public static void main(String[] args) throws IOException {
SqlSession sqlSession = getSqlSession();
System.out.println("添加用户");
UserModel user = new UserModel();
user.setName("张三");
user.setBirthday(new Date());
user.setGender("F");
sqlSession.insert("userMapper.insert", user);
System.out.println(user);
System.out.println("查询用户");
user = sqlSession.selectOne("userMapper.getUserById", 1);
System.out.println(user);
System.out.println("修改用户");
user.setName("123");
sqlSession.update("userMapper.update", user);
System.out.println("删除用户");
sqlSession.delete("userMapper.delete", 1);
//提交事务
sqlSession.commit();
sqlSession.close();
}
}
项目工程目录如下图:
综上,mybatis操作流程:
(1)引入相关jar包(mybatis核心包和数据库驱动包)
(2)配置Mybatis全局文件,设置数据库连接信息等
(3)编写实体类和SQL语句的Mapper文件
(4)获取SqlSession对象,进行具体的增删改查操作