MyBatis 框架快速入门
搭建 MyBatis 开发环境
1.创建mysql数据库和表(例如 数据库名springdb)

2.创建maven工程
3.删除默认创建的 App 类文件(如图)

4.加入 maven 坐标
pom.xml 加入 maven 坐标:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
5. 加入 maven 插件
<build>
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
6. 编写 Student 实体类
package com.zsz.domain;
//推荐和表名一样这样容易记忆
public class Student {
//定义属性,目前要求是属性名和列名一致
private Integer id;
private String name;
private String email;
private Integer age;
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Student() {
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", age=" + age +
'}';
}
}
7. 编写 Dao 接口 StudentDao
package com.zsz.dao;
import com.zsz.domain.Student;
import java.util.List;
//接口操作student表
public interface StudentDao {
//查询student表的所有数据
public List<Student> selectStudents();
}
8. 编写 Dao 接口 Mapper 映射文件 StudentDao.xml
<?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">
<!--
namespace:必须有值,自定义的唯一字符串
推荐使用:dao 接口的全限定名称
--> <mapper namespace="com.zsz.dao.StudentDao">
<!--
<select>: 查询数据, 标签中必须是 select 语句
id: sql 语句的自定义名称,推荐使用 dao 接口中方法名称,
使用名称表示要执行的 sql 语句
resultType: 查询语句的返回结果数据类型,使用全限定类名
-->
<select id="selectStudents" resultType="com.zsz.domain.Student">
<!--要执行的 sql 语句-->
select id,name,email,age from student order by id
</select>
</mapper>
<!--
1.sql映射文件,执行sql语句的,mybatis会执行这里面的sql语句
2. 指定约束文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mybatis-3-mapper.dtd 是约束文件的名称,扩展名是dtd的。
3.约束文件的作用:限制和检查在当前文件中出现的标签,属性必须符合mybatis的要求。
4.mapper是当前文件的根标签,必须的
namespace:叫做命名标签,唯一值的,可以是自定义的字符串。
要求你使用dao接口的全限定名称。
5.在当前文件夹中,可以使用特定的标签,表示数据库的特定操作。
<select>:表示执行查询;
<delete>:表示执行删除,在这个标签中写的是 uodata sql语句 ;
<updata>:表示执行修改;
<insert>:表示执行添加;
-->
9. 创建 MyBatis 主配置文件
标注:项目 src/main 下创建 resources 目录,设置 resources 目录为 resources root
创建主配置文件:名称为 mybatis.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>
<!--
配置 mybatis 环境
default:必须和某个environment的id值一样。
告诉mybatis使用那个数据库的链接信息。也就是访问那个数据库。
-->
<environments default="mysql">
<!--id:数据源的名称-->
<environment id="mysql">
<!--配置事务类型:使用 JDBC 事务(使用 Connection 的提交commit和回滚rollback)-->
<transactionManager type="JDBC"/>
<!--数据源 dataSource:创建数据库 Connection
type: POOLED 使用数据库的连接池
-->
<dataSource type="POOLED">
<!--连接数据库的四个要素-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/springdb"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
<environment id="onlinedb">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/onlinedb"/>
<property name="username" value="root"/>
<property name="password" value="123456798"/>
</dataSource>
</environment>
</environments>
<!--
mappers:指定sql mapper(sql映射文件)的位置
-->
<mappers>
<!--
一个mapper标签指定一个文件的位置。
从类路径开始的信息, target/class(类路径)
-->
<mapper resource="com/zsz/dao/StudentDao.xml"/>
</mappers>
</configuration>
<!--
mybatis的主配置文件:主要定义了数据库的配置信息,sql映射文件的位置
1.约束文件
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
mybatis-3-config.dtd 约束文件的名称
2.<configuration> 根标签
-->
10. 创建测试类 MyApp
标注:src/test/java/com/zsz/ 创建 MyApp.java 文件(作为测试类)
package com.zsz;
import com.zsz.domain.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import javax.annotation.Resources;
import java.io.InputStream;
import java.util.List;
public class MyApp {
public static void main(String[] args) {
//访问mybatis,读取student数据
//1.定义mybatis主配置文件的名称,从类路径的根开始(target.classes)
//这里要写: /mybatis.xml
String config="/mybatis.xml";
//2.读取这个config表示的文件
InputStream inputStream=Resources.class.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory对象
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(inputStream);
//5.[重要]获取SqlSession对象,从SqlSessionFactory中获取SqlSession
SqlSession sqlSession=factory.openSession();
//6.[重要]指定要执行的sql语句的标识。sql映射文件的namespace+"."+标签的id值。
String sqlId="com.zsz.dao.StudentDao"+"."+"selectStudents";
//7.执行sql语句,通过sqlId找到语句
List<Student> studentList = sqlSession.selectList(sqlId);
//8.输出结果
// studentList.forEach(stu-> System.out.println(stu));
for (Student stu:studentList) {
System.out.println("查询的学生="+stu);
}
//9.关闭SqlSession对象
sqlSession.close();
}
}
11.配置日志功能
mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数
<!--mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
12.运行结果
查询的学生=Student{id=1001, name='赵书正', email='3211@qq.com', age=20}
查询的学生=Student{id=1002, name='卫龙', email='333@qq.com', age=20}
查询的学生=Student{id=1003, name='生良好', email='666@qq.com', age=19}
查询的学生=Student{id=1004, name='臧三', email='999@qq.com', age=25}
查询的学生=Student{id=1002, name='卫龙', email='333@qq.com', age=20}
查询的学生=Student{id=1003, name='生良好', email='666@qq.com', age=19}
查询的学生=Student{id=1004, name='臧三', email='999@qq.com', age=25}
本文详细介绍了如何从创建数据库和表开始,通过Maven配置MyBatis环境,编写实体类、Dao接口和映射文件,直至实现数据查询和日志配置。跟着步骤走,轻松掌握MyBatis基础应用。
875

被折叠的 条评论
为什么被折叠?



