MyBatis入门案例_创建项目所需文件和编写内容
使用MyBatis的步骤
复制1、pom.xml依赖: 添加使用mybatis需要的依赖和其他配置,插件
2、类文件: 创建对应数据库表的实体类和访问数据的dao接口
1)、实体类 Student.java
2)、dao接口 StudentDao.java
3、配置文件: 创建mybatis所需的配置文件
1)、sql映射文件 StudentDao.xml
2)、mybatis主配置文件 mybatis.xml
1. pom依赖
添加依赖
在pom.xml文件中添加mybatis
和mysql驱动
依赖,项目资源构建设置和编译项目所需的插件
<!-- 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>
<!-- 添加插件 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
2. 类文件
2.1. 实体类
编写实体类
编写和数据库表中数据行(记录)对应的java实体类 src/main/java/com/bipowernode/domain/Student.java
package com.bipowernode.domain;
/**
* @author nathan
* @date 2021-11-19-20:37
*/
import org.apache.ibatis.type.IntegerTypeHandler;
/**
* 1、定义实体类
* 要求: 推荐和数据库表的名称一致,方便记忆
*/
public class Student {
/**
* 2、定义实体属性
* 要求: 实体类中的属性名和数据库表中的列名(字段名)保持一致
*/
private Integer id ;
private String name;
private String email;
private Integer age;
/**
* 3、生成属性对应的get,set方法
*/
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;
}
/**
* 4、重写toString()方法
*/
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", age=" + age +
'}';
}
}
2.2. dao接口
创建操作数据的dao接口 src/main/java/com/bipowernode/dao/StudentDao.java
package com.bipowernode.dao;
import com.bipowernode.domain.Student;
import java.util.List;
/**
* 1、定义操作实体类数据的dao接口
*/
public interface StudentDao {
/**
* 2、定义接口抽象方法,dao中的方法是一个"操作"对应sql语句的执行"操作"
* 而操作对应的sql语句编写在单独的sql映射配置文件中,配置文件的位置和dao接口在同一目录下
* 且配置文件文件名建议和接口名保持一致
*/
//定义 查询Student表中的所有数据 的方法
public List<Student> selectStudents();
}
3. 配置文件
3.1. sql映射文件
创建sql映射文件 src/main/java/com/bipowernode/dao/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">
<mapper namespace="org.mybatis.example.BlogMapper">
<!-- 标签举例: <select>标签为例
select: 表示查询操作,对应数据库操作select
属性'id': 被执行的sql语句的唯一标识,mybatis会根据此id值执行sql语句
可以自定义,但要求使用接口中的方法名
属性'resultType': 是一个结果类型。表示执行sql语句后得到的ResultSet,然后遍历得到的java对象的类型
这个类型对应的是实体类如Student的类型,这样数据库中数据就转换为java对象
类型的表示是使用实体类的全限定名称"包名.类名",如 "com.bipowernode.domain.Student"
-->
<select id="selectStudents" resultType="com.bipowernode.domain.Student">
select id ,name email,age from student order by id;
</select>
</mapper>
<!--
此文件是sql映射文件,用于编写sql语句,mybatis会自动执行里面的sql
sql映射文件基本内容和格式
1、指定约束文件(下面的约束内容是固定的)
=====================================================
<!DOCTYPE mapper
PUBLIC "-//mybatis.org.//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
=====================================================
其中: 'mybatis-3-mapper.dtd'是约束文件的名称,扩展名为'.dtd'
2、约束文件的作用
用于约束此文件中的内容符合mybatis文件的规则
内容包括标签,属性等,不能随意书写
3、mapper标签: 表示当前文件的根标签,是必要的
属性 'namespace': 称为'名称空间',值是唯一的,值可以是自定义的字符串
但是要求使用dao接口的[全限定名称]。全限定名称就是由"包名"+"类名"组成
4、可以在当前文件中使特定的标签表示数据库的特定操作
操作内容如数据库的查询,更新,插入,删除操作,这些操作
对应<select>,<update>,<insert>,<delete>标签,标签中的内容就是对应操作的sql语句
-->
3.2. mybatis主配置文件
在src
目录下的resource
目录下创建mybatis
的主配置文件
src/main/resources/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>
<!-- 环境配置,表示数据库的连接信息-->
<environments default="development">
<!-- environment
属性'id': 表示代表这个环境的唯一值,自定义
-->
<environment id="development">
<!-- transactionManager: 表示mybatis的事务类型
属性'type': :JDBC:表示使用jdbc中Connnection对象的commit,rollback做事务处理
-->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- dataSource表示数据源-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 指定sql mapper 即sql映射文件的位置-->
<mappers>
<!-- 一个mapper标签指定一个文件的位置
文件位置要求: 从类路径开始的路径信息
-->
<mapper resource="com/bipowernode/dao/StudentDao.xml"/>
</mappers>
</configuration>
<!--此文件是mybatis的主配置文件,主要定义了数据库的配置信息,sql映射文件的定义位置
此文件内容组成
- xml文件声明
- 约束文件
- configuration: 根标签
- environments
- environment: 环境配置,表示数据库的连接信息
- transactionManager: 表示mybatis的事务类型
- dataSource: 数据源
-->
1、添加maven插件
pom.xml中添加内容
<build>
<resources>
<!-- 表示指定src/main/java的 include表示的文件为资源文件 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<!-- 表示指定src/main/resources的 include表示的文件为资源文件 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
⚠️注: 其中plugins
的内容可以不用添加到pom.xml
中,默认提供.
⚠️注: 如果编译后的target
中没有mybatis.xml
注配置文件,也可以添加resource
指定编译目录下的配置文件.xml
,或.properties
。
2、为什么要添加build
插件
默认情况下,位于java
包下的.xml
,.properties
等配置文件不会被mybatis
处理,如果mybatis不处理,则编译后的target
目录会缺失配置文件内容(图),则导致程序出错。
说明: 上图中classes
就是类路径,此时类路径下有编译后的配置文件StudentDao.xml
,这样mybatis就可以处理配置文件中的内容。
<configuration>
....
<mappers>
<mapper resource="com/xxxxx/dao/StudentDao.xml"/>
</mappers>
</configuration>
说明: resource
的值应该是target/classes
类路径下的路径名,如com/xxx/xxx/*.xml
,注意使用/
分隔而不是.
。设置了正确的路径后,在mybatis主配置文件中会寻找这个文件,执行其中的sql
语句。
创建完成后一个Idea+maven+mybatis项目的文件结构(图)
来源: 博客园
作者: 茶哩哩
文章: 转载请注明原文链接:https://www.cnblogs.com/martin-1/p/15581040.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现