当前位置: 首页 > news >正文

Mybatis入门

Mybatis入门

Pom.xml文件配置

导入mybatis依赖

<!--导入mybatis依赖,适配jdk17-->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version>
</dependency>

导入lombok依赖(可选)

<!--导入lombok依赖-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version>
</dependency>

导入数据库依赖(驱动)

<!--导入mysql依赖-->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.1.0</version>
</dependency>

导入Maven 官方编译插件

<!--后续的forEach用到--> 
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin></plugins>
</build>

mybatis-config.xml核心配置文件

文件路径

在这里插入图片描述

配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--导入环境--><environments default="development"><environment id="development"><!--使用 JDBC 自带的事务管理机制--><transactionManager type="JDBC"></transactionManager><!--使用 MyBatis 自带的连接池,管理数据库连接的创建和复用--><dataSource type="POOLED"><!--数据源属性配置--><!-- 数据库驱动类 --><property name="driver" value="com.mysql.cj.jdbc.Driver"/><!-- 数据库连接 URL --><property name="url" value="jdbc:mysql://localhost:3306/emp_desgin?useSSL=false&amp;serverTimezone=UTC"/><!-- 数据库用户名 --><property name="username" value="root"/><!-- 数据库密码 --><property name="password" value="123456"/></dataSource></environment></environments><mappers><!--注册mapper映射--><!-- 方式1:注册 Mapper 接口(推荐,需与 XML 映射文件同路径同名) --><mapper class="com.cjp.mapper.DeptMapper"/><!-- 方式2:注册 XML 映射文件(需指定完整路径) --><!-- <mapper resource="com/cjp/mapper/DeptMapper.xml"/> --><!-- 方式3:批量注册某个包下的所有 Mapper 接口(推荐,简化配置) --><!-- <package name="com.cjp.mapper"/> --></mappers>
</configuration>

Pojo实体类

  • pojo包下存放的是与数据库表一一对应的实体类,一张表一个实体类

  • 实体类中定义的属性就是数据库表中的各个字段,数据类型采用包装类,属性名可以不采用大写

  • 为减少代码量,我们可以引入lombok依赖(@Data、@NoArgsConstructor、 @AllArgsConstructor)

  • 若是多表联查,可以新建一个实体类,将多表的字段都声明成属性

文件路径

在这里插入图片描述

工具类构建SqlSessionFactory

文件路径

在这里插入图片描述

实现代码

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的

//创建MybatsUtil工具类
public class MybatisUtil {/*工具类,获取SqlSessionFactory实例*/static SqlSessionFactory ssf = null;/*放置静态代码块中,只加载一次,SqlSessionFactory的特性*/static {try {String resource = "mybatis-config.xml";//通过mybatis的Resources工具类加载制定配置文件 获取了一个字节输入流对象(数据载入)InputStream is = Resources.getResourceAsStream(resource);//获得工厂对象ssf = new SqlSessionFactoryBuilder().build(is);} catch (IOException e) {e.printStackTrace();}}//用于获取SqlSession对象public static SqlSession getSqlSession(){return ssf.openSession();}
}

static 代码块初始化 SqlSessionFactory,确保类加载时只执行一次,避免重复创建(SqlSessionFactory 是重量级对象,全局只需要一个实例)

MyBatis 的 Resources.getResourceAsStream() 是从 classpath 加载资源,而非本地文件系统路径。你项目中 mybtis-config.xml 位于 src/main/resources 根目录下,因此正确的资源路径应为 mybtis-config.xml(直接写文件名,无需带 src/main/resources

mybatis-config.xml 必须放在项目的 classpath 目录下,MyBatis 的 Resources.getResourceAsStream() 方法会从 classpath (如下)中查找资源

String resource = "mybatis-config.xml";
src/
└── main/├── java/          // Java 代码└── resources/     // 资源文件(classpath 根目录)└── mybatis-config.xml  // 正确位置

Mapper接口

文件路径

在这里插入图片描述

新建接口

采用表名+Mapper的命名方式,对外暴露对表操作的相关方法

public interface DeptMapper {/*定义与表名相关的接口,对外暴露功能方法(例如查询、修改等)*/public List<Dept> queryAllDept();
}

建立与xxMapper关联的xxMapper.xml文件

文件路径

在这里插入图片描述

方法一:在 mybatis-config.xml 中注册 Mapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--添加 namespace,值为 DeptMapper 接口的全限定类名 -->
<mapper namespace="com.cjp.mapper.DeptMapper"><!--在此处实现接口中的方法,id是对应接口中的方法名,resultType是指方法的返回值--><select id="queryAllDept" resultType="com.cjp.pojo.Dept"><!--此处编写sql语句-->select * from dept</select>
</mapper><!--注册mapper如下(mybatis-config.xml文件中)-->
<!--    <mappers>&lt;!&ndash;注册mapper映射&ndash;&gt;&lt;!&ndash; 方式1:注册 Mapper 接口(推荐,需与 XML 映射文件同路径同名) &ndash;&gt;<mapper class="com.cjp.mapper.DeptMapper"/>&lt;!&ndash; 方式2:注册 XML 映射文件(需指定完整路径) &ndash;&gt;&lt;!&ndash; <mapper resource="com/cjp/mapper/DeptMapper.xml"/> &ndash;&gt;&lt;!&ndash; 方式3:批量注册某个包下的所有 Mapper 接口(推荐,简化配置) &ndash;&gt;&lt;!&ndash; <package name="com.cjp.mapper"/> &ndash;&gt;</mappers>-->

若使用 resource 注册 XML 文件,路径需以 classpath 为根,用 / 分隔(如 com/cjp/mapper/DeptMapper.xml

若使用 package 批量注册,需保证包下所有接口的 XML 映射文件满足 “同路径同名” 规则

方法二:使用注解(无需 XML 映射文件)

// DeptMapper 接口示例(注解方式)
package com.cjp.mapper;import org.apache.ibatis.annotations.Select;
import com.cjp.pojo.Dept;public interface DeptMapper {@Select("select * from dept where id = #{id}")Dept selectById(int id);
}

测试

public class Test {public static void main(String[] args) {//获取SqlSession对象SqlSession sqlSession = MybatisUtil.getSqlSession();//根据指定类型 来获取映射器DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);mapper.queryAllDept().forEach(System.out::println);sqlSession.close();}
}
http://www.dtcms.com/a/570669.html

相关文章:

  • SpringBoot之动态代理
  • java每日精进 11.04【关于线程的思考】
  • 广州 餐饮 网站建设微网站策划方案
  • 公司网站首页怎么制作网站建设邯郸
  • 网站开发工具的功能有哪些建站平台工具
  • Ie8网站后台编辑文章wordpress外贸模版
  • 读书笔记|理财,锻炼,阅读,思考
  • 【产品调研】运动生物力学软件工具对比
  • 马卡龙网站建设方案阿里巴巴国际站费用
  • 网站开发融资计划徐州列表网
  • 如何验证数据一致性?
  • 湘潭网站公司百度站长网站文件验证
  • KingSCADA项目遇到的几个问题
  • 电子学会青少年软件编程(C/C++)4级等级考试真题试卷(2025年9月)
  • 教做宝宝辅食的网站网站建设的方案计划
  • 【仓颉纪元】仓颉标准库源码深度拆解:探秘高性能实现之道
  • 四川网站开发制作青岛网站建设方案托管
  • DeepAgent:工具检索、工具调用与思维折叠的统一智能体框架深度解析
  • 古田网站建设域名服务网站
  • 兼职网站建设收费上海市建设部注册中心网站
  • 网上下的网站模版后门成都麦卡网络做网站开发怎么样
  • 计算机操作系统:文件目录
  • 安桌系统adb操作
  • 网站开发从哪开始学最近的头条新闻
  • 做网页怎么建站点有什么免费开发网站建设软件有哪些
  • 服装网站建设平台分析做网站时需要FTP工具吗
  • 网上做兼职的网站大气黑色机械企业网站源码
  • 环保网站开发superstore wordpress下载
  • 流匹配动作生成
  • 构建AI智能体:八十四、大模型涌现能力的解构分析:从量变到质变的神秘跃迁