Day40(10)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\springboot-mybatis-quickstart

news/2025/11/16 20:26:46/文章来源:https://www.cnblogs.com/David0919/p/19228966

Mybatis

image-20251116133907065

image-20251116134300146

image-20251116140306307

image-20251116140314402

image-20251116141225205

image-20251116165543669

image-20251116165640078

image-20251116165732487

public class HikariDataSource extends HikariConfig implements DataSource, Closeable {private static final Logger LOGGER = LoggerFactory.getLogger(HikariDataSource.class);private final AtomicBoolean isShutdown = new AtomicBoolean();private final HikariPool fastPathPool;private volatile HikariPool pool;public HikariDataSource() {this.fastPathPool = null;}public HikariDataSource(HikariConfig configuration) {configuration.validate();configuration.copyStateTo(this);LOGGER.info("{} - Starting...", configuration.getPoolName());this.pool = this.fastPathPool = new HikariPool(this);LOGGER.info("{} - Start completed.", configuration.getPoolName());this.seal();}public Connection getConnection() throws SQLException {if (this.isClosed()) {throw new SQLException("HikariDataSource " + this + " has been closed.");} else if (this.fastPathPool != null) {return this.fastPathPool.getConnection();} else {HikariPool result = this.pool;if (result == null) {synchronized(this) {result = this.pool;if (result == null) {this.validate();LOGGER.info("{} - Starting...", this.getPoolName());try {this.pool = result = new HikariPool(this);this.seal();} catch (HikariPool.PoolInitializationException pie) {if (pie.getCause() instanceof SQLException) {throw (SQLException)pie.getCause();}throw pie;}LOGGER.info("{} - Start completed.", this.getPoolName());}}}return result.getConnection();}}

image-20251116165959351

切换连接池

image-20251116170627703

com.alibabadruid-spring-boot-starter1.2.19

image-20251116171642794

image-20251116172442226

image-20251116172806023

image-20251116192459448

image-20251116193149271

image-20251116193909853

package com.itheima.mapper;import com.itheima.pojo.User;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper//这个注解是说明这个接口是mybatis中的持久层接口
//应用程序在运行时,会自动的为该接口创建一个实现类对象(代理对象),并自动将该实现类对象放置到IOC容器中,成为bean对象
public interface UserMapper {/*** 查询所有用户*/@Select("select id, username, password, name, age from user")public List<User> findAll();/*** 根据id删除用户* @param id* @return*/@Delete("delete from user where id =#{id}")public Integer deleteById(Integer id);/*** 新增用户* @param user*/@Insert("insert into user(username,password,name,age) values (#{username},#{password},#{name},#{age})")public void insert(User user);/*** 更新*/@Update("update user set username = #{username}, password = #{password},name = #{name}, age = #{age} where #{id} = 1")public void update(User user);/*** 根据用户名和密码查询信息* @param username* @param password* @return*/@Select("select * from user where username = #{username} and password = #{password}")public User findByUsernameAndPassword(@Param("username")String username,@Param("password")String password);
}
package com.itheima;import com.itheima.mapper.UserMapper;
import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest//springboot中单元测试的注解-当前测试类中的测试方法运行时,会启动springboot的项目-IOC容器就创建好了
class SpringbootMybatisQuickstartApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testFindAll(){List<User> userList = userMapper.findAll();userList.forEach(System.out::println);}@Testpublic void testDeleteById(){Integer i = userMapper.deleteById(4);System.out.println("执行完毕后影响的记录数:"+i);}@Testpublic void testInsert(){User user = new User(null,"gaoyuanyuan","666888","高圆圆",18);userMapper.insert(user);}@Testpublic void testUpdate(){User user = new User(1,"zhouyu","666888","周瑜",20);userMapper.update(user);}@Testpublic void testFindByUsernameAndPassword(){User user = userMapper.findByUsernameAndPassword("zhouyu", "666888");System.out.println(user);}
}

xml映射配置文件

image-20251116194251294

创建多级目录用/,创建多级包用.

Mybatis中文网

<?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="org.mybatis.example.BlogMapper"><select id="selectBlog" resultType="Blog">select * from Blog where id = #{id}</select>
</mapper>
<?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.itheima.mapper.UserMapper">
<!--    <select id="selectBlog" resultType="Blog">-->
<!--        select * from Blog where id = #{id}-->
<!--    </select>-->
<!--    resultType:查询返回的单条记录所封装的类型--><select id="findAll" resultType="com.itheima.pojo.User">select id, username, password, name, age from user</select>
</mapper>

image-20251116195809010

image-20251116195831618

image-20251116200649388

spring.application.name=springboot-mybatis-quickstart#配置数据库的连接信息
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/web01
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1234
#配置mybaris的配置输出
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl#指定XML映射配置文件的位置
mybatis.mapper-locations=classpath:mapper/*.xml

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

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

相关文章

还能回到原先吗 绞尽脑汁翻阅文献 这名为爱的实验 被等号连接

test40 教练模拟器真好玩 /kel俄罗斯方块 旋转一下然后计数,注意对对称图形去重喵。 #pragma GCC optimize(1,2,3,"Ofast","inline") #include<bits/stdc++.h> #define int long long #def…

irm steam.work|iex 风险分析

一个高风险的恶意命令。 执行此命令将严重危害您的计算机安全和您的 Steam 帐户。 风险分析:irm steam.work|iex这个命令由三个部分组成,组合起来非常危险:irm steam.workirm 是 Invoke-RestMethod 的别名,这是一个…

2025年11月手动旗杆厂家口碑推荐榜单及选购指南

摘要 2025年旗杆行业迎来新一轮技术升级,不锈钢旗杆、电动旗杆等产品在材质工艺和智能控制方面均有显著突破。本文基于市场调研数据、用户反馈和行业技术参数,整理出手动旗杆领域权威推荐榜单,为酒店、学校、企业等…

2025年四川电动旗杆制造厂排行榜TOP5权威发布

摘要 随着城市化进程加快和企事业单位形象提升需求增长,2025年四川电动旗杆行业迎来快速发展期。本文基于市场调研数据、用户口碑评价和技术实力评估,为您呈现最新行业排行榜单,为采购决策提供参考依据。文末附有详…

Pandas --DataFrame基本操作

Pandas --DataFrame基本操作一.介绍DataFrame是pandas中另一个核心数据结构,它是一个二维的、大小可变的、可以存储多种类型数据的表格结构。每一列可以是不同的类型(数值、字符串、布尔值等),并且有行索引和列索引…

2025年11月全国旗杆厂家综合实力排行榜TOP5权威发布

摘要 2025年旗杆制造行业迎来技术升级与市场需求双增长,智能化、定制化成为主流趋势。本文基于行业数据调研、用户口碑评价、技术实力评估等多维度分析,为您呈现最新旗杆厂家排名榜单。本榜单旨在为政府采购、企业采…

debian sysctl: cannot open /etc/sysctl.conf: 没有那个文件或目录

系统正常使用,却弹出inotify的警告查询当前配置 cat /proc/sys/fs/inotify/max_user_watches cat /proc/sys/fs/inotify/max_user_instances 系统默认配置第一项12W多,第二项256 linux inotify 是一种高效的文件监控…

完整教程:(Linux) WSL 通过 VSCode 连接不执行 profile 问题(登录Shell问题)

完整教程:(Linux) WSL 通过 VSCode 连接不执行 profile 问题(登录Shell问题)2025-11-16 20:15 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflo…

入侵防护技术深度解析:最新漏洞与威胁态势

本文详细介绍了FortiGuard实验室在入侵防护领域的最新研究成果,包括新发现的5个安全漏洞和5个已修复漏洞的技术细节,涵盖D-Link、Google Chrome等多个厂商产品的安全威胁分析,为网络安全防护提供重要参考。研究 研究…

mysql函数大全及举例 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

P14507 缺零分治 mexdnc题解

我真厉害。P14507 缺零分治 mexdnc 考时思路对了,但是代码太乱了,冗长复杂,难以调试,我直接放弃了,赛后补题,看题解,发现写的都是gousi(个人感觉,我确实看不懂写的都是啥),看部分题解发现我的思路确实没问题…

python多进程通信 —— 两进程通信 —— Pipe与Queue的通信性能对比

python多进程通信 —— 两进程通信 —— Pipe与Queue的通信性能对比运行代码:点击查看代码 import time from multiprocessing import Process, Pipe, Queuedef reader_pipe(pipe):output_p, input_p = pipeinput_p.c…

20232427 2025-2026-1 《网络与系统攻防技术》实验五实验报告

一、实验内容 本次实验聚焦信息搜集技术实践,核心内容包括五部分: 1.选择目标域名,通过多种工具查询其 DNS 注册信息、对应 IP 地址、IP 注册详情及地理位置; 2.尝试获取社交平台好友的 IP 地址并定位其地理位置;…

解决Elctron打包成功,IPC无法注册问题。

目录解决Elctron打包成功,IPC无法注册问题。项目地址 解决Elctron打包成功,IPC无法注册问题。 核心问题原因IPC 处理程序未注册:主进程未注册 resource:scanDirectory通道的处理程序 注册时序问题:处理程序注册可能…

Swagger开启账号验证访问

背景概述 在一些小型的Java后端开发项目工程中集成Swagger生成接口文档是一个比较普遍的做法,默认情况下访问Swagger文档是没有限制的,任何人都可以访问并进行调试。这在某些场合下可能并不合适,特别是对于一些具备…

标准解读——GB/T 46353—2025《信息技术 大数据 资料资产价值评估》国家标准

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

noip7

11.1311.13 挂分场。 t1 神秘淀粉质。 不想改了,反正noip不考(题解说的)。 赛时写了2h发现想假了,当场😡。 t2 简单构造。 但是挂分了。 每个球跳的次数求假了(不是这也能假)。 然后就挂了。 codewww #include…

代码背后的故事:docker容器名生成算法

让我们一探每次docker run背后自动生成的容器名是怎么生成的,以及生成算法背后的故事吧。我们知道容器化最大的好处是软件交付形成了一种标准化,其带来的好处是巨大且深远的,让开发者从解决各种环境差异的痛苦中解放…

在Windows系统置顶窗口不被Win+D快捷键影响

需求背景 Windows10系统,工作需要开多个应用程序,在使用双屏幕时(多显示器设置为:扩展这些显示器),希望使用另外一个屏幕做监控用,总时只要打开一个浏览器窗口盯着监控信息。但是经常需要通过快捷键Win+D快速返…

dns服务详解

dns服务 1、dns服务是什么叫做名称服务,作用就是将域名解析成ip地址,这个叫做正向解析将ip地址解析成域名叫做反向解析还提供邮件服务器的交换记录在互联网中有很重要的作用是一个c/s架构,每一个电脑就是一个dns客户…