Mybatis入门案例
一、准备
- mysql
- Maven
- IDEA
1.创建一个Maven的web项目
2. 在项目中创建如下目录
- 要指定目录类型才能创建相应文件,若不知道怎么指定可参照文件夹对应颜色或参照https://www.cnblogs.com/toutou/p/ssm_spring.html文章。
指定好文件夹程序才能找到相应文件位置
3.创建数据表
二、简单的查询Demo
1. 引入依赖包
- 在pom.xml文件中的标签中添加如下代码。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
<scope>test</scope>
</dependency>
<!--数据库驱动,可根据自己数据库安装相应版本-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.9-rc</version>
</dependency>
2.创建实体类
package com.pojo;
public class Person {
private int id;
private String name;
private String 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 String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return ("姓名:"+name+"\n年龄:"+age+"\nid"+id);
}
}
3. 配置mybatis-config.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>
<!-- 引入jdbc.properties文件 -->
<properties resource="jdbc.properties"/>
<!-- 和spring整合后 environments配置将废除 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/sys?
useSSL=false&useUnicode=true&
characterEncoding=utf-8&
serverTimezone=GMT%2B8"/>
<property name="username" value="root" />
<!-- 这里我的数据库没有设置密码,因此为空 -->
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 第一种方式,加载 resource-->
<mapper resource="mybatis/personMapping.xml"/>
</mappers>
</configuration>
4. 配置映射文件
<?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="com.dao.Person">
<select id="selectAllUser" resultType="com.spring.dao.PersonDao">
SELECT * from person
</select>
</mapper>
5.编写测试类
import com.dao.PersonMapping;
import com.pojo.Person;
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 org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class FirstTest {
@Test
public void test() {
try {
// 读取配置文件 mybatis-config.xml
InputStream config = Resources.getResourceAsStream("mybatis/mybatis-config.xml");
// 根据配置文件构建SqlSessionFactory
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
// 通过 SqlSessionFactory 创建 SqlSession
SqlSession ss = ssf.openSession();
List<Person> user_list = new ArrayList<>();
// 这里就是映射文件中,你具体要用那个namespace中的那一条语
user_list = ss.selectList("com.dao.PersonMapping.selectAllUser");
句。
for (Person user : user_list) {
System.out.println(user);
}
// 提交事务
ss.commit();
// 关闭 SqlSession
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 完整目录结构
5.运行结果
end