Mybatis-入门示例
1,环境准备:
1,mysql : 5.7
2,maven : 3.6.1
3,idea
2,环境搭建:
1,首创建数据库`mybatis`
CREATE DATABASES `mybatis` CHARACTER SET utf8 COLLATE utf8_general_ci;
2,创建表 `user`
CREATE TABLE `user`(
`id` INT(20) NOT NULL PRIMARY KEY,
`name` VARCHAR(30) DEFAULT NULL,
`pwd` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;
3,创建工程一个maven工程。
填组名工程名,这里工程是父工程,可以命名为parent。
因为这个而工程是父工程,没有代码,所以删除src目录。
创建子工程(模块),也是一个maven工程。
子工程的名字
3,编写
1,pom.xml文件配置。
这里需要用的到的只有这些。在父工程中配置,子工程也继承了这些依赖,所以子工程pom.xml文件中无需配置。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--父工程-->
<groupId>com.sino</groupId>
<artifactId>mybatis_demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!--子工程-->
<modules>
<module>mybatis_web</module>
</modules>
<!--导入依赖-->
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
</dependencies>
</project>
2,创建项目包结构
3,utils包,编写mybatisUtils类
package com.sino.utils;
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 java.io.InputStream;
//Mybatis工具类,用于得到SqlSession对象
public class MybatisUtil {
public static SqlSessionFactory sqlSessionFactory;
static{
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (Exception e){
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
4,Model包,创建一个User类
这里用到了maven中配置的lombok的依赖,不用写get()/set()方法。用@Data注释代替
package com.sino.model;
import lombok.Data;
//user模型
@Data
public class User {
private int id;
private String name;
private String pwd;
}
5,dao包,创建一个UserMapper接口
package com.sino.dao;
import com.sino.model.User;
import java.util.List;
//dao层接口
public interface UserMapper {
List<User> getUserList();
}
6,在resources中创建mapper目录用来存放所有mapper.xml文件,创建UserMapper.xml
namespace指定dao层接口,id指定接口中方法
<?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指定Dao层某个接口, id指定某个方法,resultType指定返回值类型-->
<mapper namespace="com.sino.dao.UserMapper">
<select id="getUserList" resultType="com.sino.model.User">
SELECT * FROM mybatis.user;
</select>
</mapper>
7,mybatis核心配置文件中mapper的配置。
配置核心配置文件的mappers标签。
4,测试
在test中创建测试类
package com.sino.dao;
import com.sino.model.User;
import com.sino.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void Test() {
// 1,使用mybatisUtils工具类得到sqlsession对象
SqlSession sqlSession = MybatisUtil.getSqlSession();
// 2,使用sqlsession对象的getMapper方法,得到mapper对象。
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3,使用此mapper对象可以调用接口中的方法,得到结果集。
List<User> userList = mapper.getUserList();
// 4,处理结果集
for (User user : userList) {
System.out.println(user);
}
}
}