MyBatis入门教程
MyBatis入门案例
新建一个Java Project,导入相关jar包,如下:
导入MyBatis约束文件(.dtd)配置文件和mapper约束文件
在数据库中建一个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);
}
}
运行结果如下: