MyBatis:使用到的代码整理

news2025/1/17 6:12:31

文章目录

  • MyBatis:Day 04
  • 框架
    • 1. 依赖:pom.xml
    • 2. 外部配置文件:db.properties
    • 3. 核心配置文件:mybatis-config.xml
    • 4. 工具类:MybatisUtils.java
    • 5. 实体类
    • 6. 接口:xxxMapper.java
    • 7. 实现类:xxxMapper.xml
    • 8. 测试

MyBatis:Day 04

框架

1. 依赖:pom.xml

<dependencies>
    <!-- mysql 数据库驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.16</version>
    </dependency>

    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>

    <!-- junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <!-- lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.24</version>
    </dependency>
</dependencies>


<!-- 在 build 中配置 resources,来防止我们资源导出失败的问题 -->
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>

        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

2. 外部配置文件:db.properties

drive=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username=xxx
password=xxx

3. 核心配置文件:mybatis-config.xml

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- configuration 核心配置文件 -->
<configuration>

    <properties resource="db.properties"/>
    
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <typeAliases>
        <typeAlias type="com.Sun3285.pojo.xxx" alias="xxx"/>
        <!--<package name="com.Sun3285.pojo"/>-->
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${drive}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 每一个 Mapper.xml 都需要在 Mybatis 核心配置文件中注册 -->
    <mappers>
        <mapper resource="com/Sun3285/dao/xxxMapper.xml"/>
        <!--<mapper class="com.Sun3285.dao.xxxMapper"/>-->
        <!--<package name="com.Sun3285.dao"/>-->
    </mappers>
</configuration>

4. 工具类:MybatisUtils.java

public class MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory = null;
    static {
        try {
            // 第一步:获取 sqlSessionFactory 对象
            String resource = "mybatis-config.xml";
            InputStream is = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 第二步:获取 sqlSession 对象
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession(true);
    }
}

5. 实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class 实体类 implements Serializable {
    private int xxx;
    private String xxx;
}

6. 接口:xxxMapper.java

public interface xxxMapper {
    
    // 方法
    返回值类型 方法名(@Param("xxx") int xxx);
}

7. 实现类:xxxMapper.xml

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.Sun3285.dao.xxxMapper">

    <cache/>

    <select id="方法名" parameterType="参数类型" resultType="返回值类型">
        sql 语句
    </select>

</mapper>

8. 测试

public class Tset01 {
    @Test
    public void test01() {

        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(xxxMapper.class);

        mapper.方法
        xxxxxx
        
        sqlSession.close();
    }
}

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

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

相关文章

[数据库系统] 三、简单查询

目录 第1关&#xff1a;简单查询 1.检索数据表所有的元组 2.检索符合条件的元组 educoder 第2关&#xff1a;多表查询 1.笛卡尔积 2.等值连接 3.自然连接 4.左外连接和右外连接的表示方法及转换为SQL educode 第3关&#xff1a;集合操作 1.集合并操作 2.集合交操作…

小学生护眼用什么样的台灯比较好用一点?小学生护眼台灯排行榜

孩子近视了&#xff0c;很多家长认为是数码产品导致的。其实除了数码产品&#xff0c;灯光也是一个非常重要的原因。或许你认为卧室的灯亮孩子写作业就没有问题&#xff0c;其实这种情况仍会出现灯下黑的现象。如果你想孩子写作业不受灯光的影响&#xff0c;那么一定要给他们配…

实验四 数据库设计

【实验目的】 1、掌握规范化数据库设计包括步骤及其任务、方法、结果等。 2、掌握数据库设计过程中关键文档的写法。 3、了解数据库辅助设计工具。 【实验内容】 请按下面大纲书写实验报告&#xff08;请自行附页&#xff09;。 &#xff08;1&#xff09;需求分析&#…

【MySQL】Mysql索引失效场景(15个必知)

文章目录 背景数据库及索引准备创建表结构初始化数据数据库版本及执行计划 1、联合索引不满足最左匹配原则2、 使用了select *3 、索引列参与运算4、 索引列参使用了函数5、 错误的Like使用6、 类型隐式转换7、使用OR操作8、 两列做比较9、 不等于比较10、 is not null11、 not…

ChatGPT实现stackoverflow 解释

stackoverflow 解释 ChatGPT 公开服务以来&#xff0c;程序员们无疑是最早深入体验和"测试"的一批人。出色的效果也引发了一系列知识产权上的争议。著名的 stackoverflow 网站&#xff0c;就宣布禁止用户使用 ChatGPT 生成的内容来回答问题&#xff0c;一经发现&…

系统分析师之系统设计(十五)

目录 一、软件流程设计 1.1 业务流程分析方法 1.2 业务流程建模 1.2.1 标杆瞄准 1.2.2 IDEF 1.2.3 DEMO 1.2.4 流程建模语言 1.2.5 基于服务的BPM 1.2.6 业务流程重组BPR 1.2.7 业务流程管理BPM 二、软件架构设计 2.1 概念 2.2 软件架构风格 三、 结构化设计 四…

这样的应急科普,你爱了吗?

“当我给救援队叔叔系上红领巾的时候&#xff0c;我特别的自豪&#xff0c;很开心&#xff01;” “救援队的叔叔、阿姨们都很伟大&#xff0c;我长大了&#xff0c;也想和他们一样。” “我爸爸就是一名救援队队员&#xff0c;我很崇拜他&#xff01;” 敬少先队员礼&#…

高通 Android 8/9/12/13 兼容U盘识别extfat模式

Android本身不支持extfat格式 需要通过nofuse 打kernel补丁方式去实现 Android 8/9 1、kernel/msm-4.9/arch/arm64/configs/sdm670-perf_defconfig 增加代码如下&#xff08;需要提交编译kernel记得git add sdm670-perf_defconfig 不需要commit哈&#xff01;否则编译会还原…

最强算法视频公开课!(内容硬核,完全免费!

和录友们汇报一下&#xff0c;代码随想录算法公开课已经更新完毕了。 由我亲自录制了140期算法视频&#xff0c;覆盖了 《代码随想录》纸质版上全部题目的讲解。 视频全部免费开放在B站&#xff1a;代码随想录 目录就在视频播放的右边&#xff0c;完全按照代码随想录的顺序讲…

利用Redis的SetNx一步步实现分布式锁并改进

文章目录 1 基本原理和实现方式对比2 Redis分布式锁的实现核心思路3 利用setnx方法实现分布式锁加锁逻辑释放锁逻辑修改业务代码 4 Redis分布式锁误删情况说明5 解决Redis分布式锁误删问题6 分布式锁的原子性问题7 Lua脚本解决多条命令原子性问题8 利用Java代码调用Lua脚本改造…

DevOps产品开发实践

背景 2022年11月&#xff0c;公司启动了智能运维产品的研发项目&#xff0c;该项目基于zabbix进行二次开发&#xff0c;对行业客户的数据中心的基础软硬件设施进行数据采集和分析&#xff0c;通过持续的数据采集和监控&#xff0c;及时发现数据中心软硬件的异常状态并预警&…

k8s集群部署 | 三节点(复用)高可用集群过程参考

文章目录 1. kubeadm 部署三节点&#xff08;复用&#xff09;高可用 k8s 集群1.1 环境规划阶段1.1.1 实验架构图1.1.2 系统版本说明1.1.3 环境基本信息1.1.4 k8s 网段划分 1.2 基础安装及优化阶段1.2.1 系统信息检查1.2.2 静态 IP 地址配置1.2.3 配置主机名1.2.4 配置/etc/hos…

open3d 源码阅读kd_tree_search.py

核心函数接口&#xff1a; search_radius_vector_3d search_knn_vector_3d # ---------------------------------------------------------------------------- # - Open3D: www.open3d.org - # ----------------------…

基于Html+css的图展示52

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

ubuntu脚本解释器踩坑:#!/bin/bash 与 #!/bin/sh

前言&#xff1a; 博主正在写linux的脚本的时候遇到&#xff1a;xx.sh: 3: Syntax error: "(" unexpected 查看shell脚本语法没有问题&#xff0c;后面发现是解释器的原因。 一、不同的解释器 #!是特殊的表示符&#xff0c;其后面根的是此解释此脚本的shell的路径…

【Linux】Linux安装Nexus(图文解说详细版)

文章目录 1.下载2.解压3.启动4.打开防火墙(云服务器&#xff09;5.访问nexus 1.下载 https://help.sonatype.com/repomanager3/product-information/download/download-archives—repository-manager-3 新建nexus文件夹&#xff0c;上传到服务器中 2.解压 tar -zxvf nexus-3.…

Java序列化引发的血案

1、引言 阿里巴巴Java开发手册在第一章节&#xff0c;编程规约中OOP规约的第15条提到&#xff1a; **【强制】**序列化类新增属性时&#xff0c;请不要修改serialVersionUID字段&#xff0c;避免反序列失败&#xff1b;如果完全不兼容升级&#xff0c;避免反序列化混乱&#x…

【大数据之Hadoop】二十七、生产调优-HDFS多目录

1 NameNode多目录配置 NameNode本地目录可以配置多个&#xff0c;每个目录存放内容相同&#xff0c;增加可靠性。 在hdfs-site.xml中添加&#xff0c;每台服务器节点的磁盘不同&#xff0c;可以选择不分发。 <property><name>dfs.namenode.name.dir</name>…

All in AI,现在开始算不算太晚?

编者按&#xff1a;目前大模型近乎可以帮助人类处理方方面面的事情&#xff0c;如对话、写文章、写代码等等。在大模型“狂飙”趋势下&#xff0c;想要从事AI领域的小伙伴可能会犹疑&#xff1a;现在进入AI领域会不会已经太晚了&#xff1f; 本文作者结合自身转型经历和对AI市场…

蓝牙耳机哪个牌子好?无线蓝牙耳机前十排名

现如今&#xff0c;蓝牙耳机品牌越来越多&#xff0c;很多人都不知道怎么选。下面&#xff0c;我来给大家推荐十款很不错的蓝牙耳机&#xff0c;有需要的朋友可以参考一下。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;239 蓝牙版本&#xff1a;5.3 南卡作为国产影音数码…