MyBatis入门教程

MyBatis入门案例

新建一个Java Project,导入相关jar包,如下:

MyBatis入门教程

导入MyBatis约束文件(.dtd)配置文件和mapper约束文件

MyBatis入门教程

在数据库中建一个user表:

create database mybatisdb;
use mybatisdb;
create table user(
	id int primary key auto_increment,
	name varchar(255),
	age int
);
insert into user values(null,'a',19),(null,'b',29),(null,'c',28),(null,'d',33),(null,'e',40);

编写User类:

package cn.czy.domain;

public class User {
	private int id;
	private String name;
	private int age;
	
	/**
	 * 无参构造
	 */
	public User() {
	}
	
	/**
	 * 有参构造
	 */
	public User(int id, String name, int age) {
		this.id = id;
		this.name = name;
		this.age = age;
	}


	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	

}

编写数据源的配置文件:sqlMapConfig.xml

  • 引用了上面导入的mybatis约束文件,配置数据源;
  • 配置mybatis核心配置文件的映射路径;
  • <?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>
    <!-- 配置数据源 -->
    	<environments default="mysql">
    		<environment id="mysql">
    			<transactionManager type="JDBC" />
    			<dataSource type="POOLED">
    				<property name="driver" value="com.mysql.jdbc.Driver" />
    				<property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf-8" />
    				<property name="username" value="root" />
    				<property name="password" value="root" />
    			</dataSource>
    		</environment>
    	</environments>
    	
    	<!-- 映射配置文件 -->
    	<mappers>
    		<mapper resource="cn/czy/domain/UserMapper.xml"/>
    	</mappers>
    </configuration>

    编写mybatis的mapper配置文件:UserMapper.xml

  • 该配置文件描述了User Bean与user表的映射关系,及查询操作

<?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="cn.czy.domain.UserMapper">
<select id="queryAll" resultType="cn.czy.domain.User">
	select * from user
</select>
</mapper>

这样就配置完成了,编写一个测试类运行:

  • 加载核心配置文件(mapper文件在其中映射配置)
  • 创建SqlSessionFactory->SqlSession
  • 执行操作,得到结果集
package cn.czy.test;

import java.io.InputStream;
import java.util.List;

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 org.junit.Test;

import cn.czy.domain.User;

public class UserTest {
	
	@Test
	public void test01()throws Exception {
		//1、加载核心配置文件
		InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
		//2、创建sqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
		//3、创建sqlSession
		SqlSession sqlsession = sqlSessionFactory.openSession();
		//4、实现查询
		List<User> list = sqlsession.selectList("cn.czy.domain.UserMapper.queryAll");
		System.out.println(list);
	}

}

运行结果如下:

MyBatis入门教程