滚雪球学MyBatis(03):基本配置

前言

欢迎回到我们的MyBatis系列教程。在上一期中,我们详细讲解了MyBatis的环境搭建,包括JDK、Maven/Gradle的安装和配置,以及MySQL数据库的准备工作。现在,我们已经搭建好了开发环境,是时候开始配置MyBatis了。本期内容将介绍MyBatis的基本配置,包括MyBatis配置文件和Mapper映射文件的创建与配置。通过这些内容,大家将学会如何正确配置MyBatis以便与数据库进行交互。

3.1 MyBatis配置文件(mybatis-config.xml)

MyBatis的核心配置文件是mybatis-config.xml,它用于配置MyBatis的全局行为和数据库连接信息。以下是一个基本的mybatis-config.xml示例:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 数据库环境配置 --><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo"/><property name="username" value="root"/><property name="password" value="password"/></dataSource></environment></environments><!-- 映射文件配置 --><mappers><mapper resource="com/example/mapper/UserMapper.xml"/></mappers>
</configuration>
配置详解
  1. environments:配置数据库环境,default属性指定默认使用的环境。
  2. environment:具体环境配置,id属性用于标识环境。
  3. transactionManager:事务管理器配置,这里使用JDBC事务管理。
  4. dataSource:数据源配置,这里使用连接池方式,包含数据库驱动、URL、用户名和密码等信息。
  5. mappers:配置映射文件,resource属性指定映射文件的路径。

3.2 Mapper映射文件

Mapper映射文件用于定义SQL语句及其与Java对象的映射关系。以下是一个基本的Mapper映射文件示例UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.mapper.UserMapper"><!-- 查询所有用户 --><select id="getAllUsers" resultType="com.example.model.User">SELECT * FROM users</select><!-- 插入新用户 --><insert id="insertUser" parameterType="com.example.model.User">INSERT INTO users (name, age) VALUES (#{name}, #{age})</insert><!-- 更新用户信息 --><update id="updateUser" parameterType="com.example.model.User">UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}</update><!-- 删除用户 --><delete id="deleteUser" parameterType="int">DELETE FROM users WHERE id = #{id}</delete></mapper>
配置详解
  1. namespace:命名空间,用于标识Mapper接口。
  2. select:查询语句,id属性为方法名,resultType为返回结果类型。
  3. insert:插入语句,parameterType为参数类型。
  4. update:更新语句,parameterType为参数类型。
  5. delete:删除语句,parameterType为参数类型。

3.3 数据模型与Mapper接口

创建数据模型(实体类)

在进行Mapper映射之前,我们需要创建对应的实体类。例如,创建一个User类:

package com.example.model;public class User {private int id;private String name;private int age;// Getters and Setterspublic 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 int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
创建Mapper接口

根据Mapper映射文件,我们需要创建对应的Mapper接口UserMapper

package com.example.mapper;import com.example.model.User;
import java.util.List;public interface UserMapper {List<User> getAllUsers();void insertUser(User user);void updateUser(User user);void deleteUser(int id);
}

总结

通过以上步骤,我们完成了MyBatis的基本配置,包括MyBatis配置文件、Mapper映射文件的创建与配置以及对应的实体类和Mapper接口的定义。这些配置为我们后续的开发打下了坚实的基础。在下一期中,我们将深入探讨MyBatis的基本CRUD操作,包括插入、查询、更新和删除操作。

感谢大家的阅读,我们下期再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/53543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端:HTML、CSS、JS、Vue

1 前端 内容概要 了解前端三件套(HTML、CSS、JS)在前端所起的作用掌握HTML标签的功能&#xff0c;掌握重要标签(a标签&#xff0c;form标签)了解CSS了解JS的基础语法掌握Vue的基础语法重点掌握Vue项目怎么启动项目掌握前后端分离是什么。前端做什么事情&#xff0c;后端做什么…

视频监控系统布局策略:EasyCVR视频汇聚平台构建高效、全面的安全防线

随着科技的飞速发展&#xff0c;视频监控系统已成为现代社会安全防范的重要组成部分&#xff0c;广泛应用于公共场所、企业园区、住宅小区等各个领域。一个科学合理的视频监控系统布局与选型策略&#xff0c;不仅能够显著提升安全监控的效率和效果&#xff0c;还能在关键时刻提…

Pytest-@pytest.fixture夹具篇(一)

一、定义 在Python的pytest测试框架中&#xff0c;pytest.fixture是一个&#xff08;不是唯一&#xff09;装饰器&#xff0c;用于定义一个测试夹具。 二、简单实例 使用参数autouserTrue pytest.fixture(autouseTrue) def my_fixture():print("Setup: 准备测试环境&q…

计算机毕业设计 | SpringBoot+vue 游戏商城 steam网站管理系统(附源码)

1&#xff0c;项目背景 国家大力推进信息化建设的大背景下&#xff0c;城市网络基础设施和信息化应用水平得到了极大的提高和提高。特别是在经济发达的沿海地区&#xff0c;商业和服务业也比较发达&#xff0c;公众接受新事物的能力和消费水平也比较高。开展商贸流通产业的信息…

使用PHP和MQTT构建高效的物联网数据转发服务器流程

一、项目概述 项目目标和用途 本项目旨在搭建一个基于PHP的物联网服务器&#xff0c;能够接收来自各种传感器的数据&#xff0c;并通过MQTT协议将数据转发到其他设备或服务。该系统适用于智能家居、环境监测等场景&#xff0c;能够实现实时数据监控和远程控制。 技术栈关键词…

应用层协议HTTP

应用层协议中的 HTTP&#xff08;超文本传输协议&#xff09;。在互联网中&#xff0c;HTTP 协议是一个至关重要的一个协议&#xff0c;它定义了客户端与服务器之间如何进行通信&#xff0c;以交换或传输超文本。 本篇介绍了有关 URL 的相关知识&#xff0c;http 的报文格式&am…

能量项链,洛谷

解释&#xff1a; 环形dp问题还是考虑将环拉直&#xff0c;可以参考我上一篇文章&#xff1a;环形石子合并 [2 3 5 10 2] 3 5 10 将环拉直&#xff0c;[]内是一个有效的区间&#xff0c;可以模拟吸收珠子的过程&#xff0c; 如[2 3 5] <>(2,3)(3,5) 2是头&#xff0c;…

Apache Pig

目录 一、配置说明1.本地模式2.集群模式 二、pig的数据模型三、pig的数据类型四、惰性执行五、pig的基本语法5.1语法说明5.2案例操作 六、pig的自定义函数 一、配置说明 1.本地模式 操作的是Linux系统文件 pig -x local关键日志 当前处于root目录下 2.集群模式 连接的是…

CentOS7单机环境安装k8s集群

目录 1、环境准备 2、安装依赖工具 3、配置 Kubernetes 的国内 Yum 源 4. 安装 Kubernetes 组件 5、初始化 Kubernetes 集群 1. 容器运行时没有正常运行 1.1. 可能的原因 1.2. 解决办法 2. 初始化拉取镜像卡住 2.1. 使用国内的镜像源&#xff08;无法解决问题&#x…

0.ffmpeg面向对象oopc

因为查rtsp相关问题&#xff0c;接触了下ffmpeg源码&#xff0c;发现它和linux内核一样&#xff0c;虽然都是c写的&#xff0c;但是都是面向对象的思想&#xff0c;c的面向对象称之为oopc。 这让我想起来一件好玩的事&#xff0c;有些搞linux内核驱动的只会c的开发人员不知道l…

AI绘画工具排行榜:探索最受欢迎的AI绘图软件特点与选择指南

AI绘画工具各有优势&#xff0c;从开放性到对特定语言和文化的支持&#xff0c;以及对图像细节和艺术性的不同关注点&#xff0c;根据具体需求选择合适的工具 MidJourney 图片品质卓越&#xff0c;充满独特创意&#xff0c;初期能够免费获取数十账高质量图片&#xff0c;整个生…

Java后端微服务架构下的服务网关设计:Spring Cloud Zuul

Java后端微服务架构下的服务网关设计&#xff1a;Spring Cloud Zuul 大家好&#xff0c;我是微赚淘客返利系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在微服务架构中&#xff0c;服务网关是微服务系统与外部世界的入口点&#…

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.后删除了很多 解决 查FAQ文档&#xff0c;找到 添加到mmcv.utils下即可

海事行政执法证照片要求及尺寸格式修改方法

在海事行政执法领域&#xff0c;证件照片不仅是个人形象的展示&#xff0c;更是专业严谨态度的体现。一张符合规范的照片&#xff0c;不仅能够提升执法人员的权威性&#xff0c;还能在执行任务时获得更多的尊重和信任。本文将为您详细介绍海事行政执法证照片的要求&#xff0c;…

Windows系统安装node.js环境并创建本地服务使用内网穿透发布至公网

目录 前言 1.安装Node.js环境 2.创建node.js服务 3. 访问node.js 服务 4.内网穿透 4.1 安装配置cpolar内网穿透 4.2 创建隧道映射本地端口 5.固定公网地址 前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊Windows系统安装node.js环…

k8s Helm

Helm工具介绍 了解Helm Helm是kubernetes中查找、分享、构建应用的最佳方式。 Helm是一个Kubernetes应用的包管理工具&#xff0c;用来管理chart(一种预先配置好的安装包资源)&#xff0c;有点类似于Ubuntu 的APT和CentOS/Rocky中的YUM。因此&#xff0c;helm的出现解决了k8s应…

网络安全知识科普:什么是网络准入控制系统?有哪些?

在当今数字化时代&#xff0c;网络安全已成为企业和组织不可忽视的重要议题。随着远程工作模式的普及和物联网设备的增加&#xff0c;网络边界越来越模糊&#xff0c;传统防火墙已经不足以应对日益复杂的威胁环境。在这种背景下&#xff0c;网络准入控制系统(Network Access Co…

Redis持久化机制—RDB与AOF

Redis持久化机制 RDB&#xff08;默认&#xff09; **思想&#xff1a;**保存整个数据库的快照&#xff0c;也就是RDB文件&#xff0c;有两种保存方式&#xff0c;前台保存save和后台保存bgsave&#xff0c;前者会阻塞主进程程&#xff0c;后者则是fork一个子进程去完成备份操…

C++入门9——list的使用

目录 1.什么是list&#xff1f; 2.list的构造 3.list迭代器的使用&#xff08;list iterator&#xff09; 4.list capacity 5.list modifiers 6.list的其他操作 1.什么是list&#xff1f; 在官网中&#xff0c;对list有这样的介绍&#xff1a; Lists are sequence co…

SLM561A​​系列 60V 10mA到50mA线性恒流LED驱动芯片 为智能家居照明注入新活力

SLM561A系列选型参考&#xff1a; SLM561A10ae-7G SOD123 SLM561A15ae-7G SOD123 SLM561A20ae-7G SOD123 SLM561A25ae-7G SOD123 SLM561A30ae-7G SOD123 SLM561A35ae-7G SOD123 SLM561A40ae-7G SOD123 SLM561A45ae-7G SOD123 SLM561A50ae-7G SOD123 …