Mybatis基本配置和增刪改查操作

創建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對象,進行具體的增刪改查操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章