Mybatis入门篇

原创 2020-05-23 13:21

认识Mybatis,使用Mybatis创建入门案例,分析入门案例,分别使用xml配置和注解的方式来实现。

1、什么是Mybatis?

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

2、Mybatis入门案例-查询所有

2.1 项目导报

2.1.1、所需jar包

2.1.2、Maven构建mybatis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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>org.example</groupId>
<artifactId>Mybatil_day1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!-- mybatis jar包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- mybatis日志包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>

使用mybatis实际使用mybatis和jdbc驱动包就可以,加入日志包是为了让我们在控制台查看打印的一些SQL语句和相关信息。
2.1.3、添加log4j.xml文件
然而这个日志包要想运行就必须在项目目录下添加一个log4j.xml文件(文件名必须为:logj)

2.2、项目构建

2.2.1、创建一个实体类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package Model;

public class Student {
private Integer id;
private String name;
private String Sex;
private String Sclass;
private String School;

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 String getSex() {
return Sex;
}

public void setSex(String sex) {
Sex = sex;
}

public String getSclass() {
return Sclass;
}

public void setSclass(String sclass) {
Sclass = sclass;
}

public String getSchool() {
return School;
}

public void setSchool(String school) {
School = school;
}

@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", Sex='" + Sex + '\'' +
", Sclass='" + Sclass + '\'' +
", School='" + School + '\'' +
'}';
}
}

2.2.2、创建一个dao层接口

1
2
3
4
5
public interface InStudentDao {
// 查询所有
public List<Student> findAll();

}

不需要创建该接口的实现类,因为我们mybatis会帮我们创建该接口的代理对象,我们用代理对象去调用findAll()执行就OK。


2.2.2、创建全局配置文件
全局配置文件主要帮我们配置连接数据库的连接条件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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">
<!-- 配置事务类型 -JDBC -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源(连接池) -->
<dataSource type="POOLED">
<!-- 配置连接数据库的基本信息 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>

2.2.3、创建Sql映射配置文件

1
2
3
4
5
6
7
8
9
10
<?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.StudentDao">
<!-- resultype:是指返回类型封装成Student这个实体类类型 -->
<select id="findAll" resultType="Model.Student">
select count(*) from Student
</select>
</mapper>

2.2.4、使用Mybatis查询所有Student表数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.mybatis;
public class Test {
public static void main(String[] args) throws Exception{
// 读取配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 创建SqlSessionsFactioy
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inputStream);
// 使用工厂创建SqlSession对象
SqlSession session = factory.openSession();
// 使用SqlSession创建Dao层代理对象
InStudentDao studentDao = session.getMapper(InStudentDao.class);
// 使用代理对象执行方法
List<Student> list = studentDao.findAll();
// 释放资源
session.close();
inputStream.close();

}
}

2.2.4、案例所使用的设计模式

3、Mybatis注解开发


相关博文

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×