发布时间:2026/7/31 19:02:52
Mybatis快速入门大全(详细版) MyBatis是一款流行的持久层框架简化了JDBC操作。以下是其基础入门语法1.核心配置文件mybatis-config.xml用于配置数据库连接和映射文件位置。?xml version1.0 encodingUTF-8 ?!DOCTYPEconfigurationPUBLIC-//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtdconfigurationenvironmentsdefaultdevelopmentenvironmentiddevelopmenttransactionManagertypeJDBC/dataSourcetypePOOLEDpropertynamedrivervaluecom.mysql.cj.jdbc.Driver/propertynameurlvaluejdbc:mysql://localhost:3306/test/propertynameusernamevalueroot/propertynamepasswordvaluepassword//dataSource/environment/environmentsmappersmapperresourceUserMapper.xml//mappers/configuration2.SQL映射文件UserMapper.xml定义SQL语句与Java方法的映射关系。?xml version1.0 encodingUTF-8 ?!DOCTYPEmapperPUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.example.mapper.UserMapper!-- 查询单个用户 --selectidselectUserparameterTypeintresultTypecom.example.entity.UserSELECT * FROM users WHERE id #{id}/select!-- 插入用户 --insertidinsertUserparameterTypecom.example.entity.UserINSERT INTO users (name, age) VALUES (#{name}, #{age})!-- 获取自增主键 --selectKeykeyPropertyidresultTypeintorderAFTERSELECT LAST_INSERT_ID()/selectKey/insert/mapper3.Java实体类User.java对应数据库表结构。publicclassUser{privateIntegerid;privateStringname;privateIntegerage;// getters/setters}4.Mapper接口UserMapper.java定义操作数据库的方法。publicinterfaceUserMapper{UserselectUser(intid);intinsertUser(Useruser);}5.获取SqlSession并执行操作// 加载配置文件InputStreaminputStreamResources.getResourceAsStream(mybatis-config.xml);SqlSessionFactorysqlSessionFactorynewSqlSessionFactoryBuilder().build(inputStream);// 执行查询try(SqlSessionsessionsqlSessionFactory.openSession()){UserMappermappersession.getMapper(UserMapper.class);Userusermapper.selectUser(1);System.out.println(user.getName());}6.动态SQL根据条件动态生成SQL语句。selectidfindUsersresultTypeUserSELECT * FROM userswhereiftestname ! nullAND name #{name}/ififtestage ! nullAND agegt;#{age}/if/where/select7.参数处理#{}预编译处理防止SQL注入${}直接替换用于表名、列名等selectidselectUsersresultTypeUserSELECT * FROM ${tableName} WHERE age #{minAge}/select8.结果映射处理列名与属性名不一致的情况。resultMapiduserResultMaptypeUseridpropertyidcolumnuser_id/resultpropertynamecolumnuser_name//resultMapselectidselectUserresultMapuserResultMapSELECT user_id, user_name FROM users WHERE id #{id}/select9.事务管理SqlSessionsessionsqlSessionFactory.openSession(false);// 手动提交try{UserMappermappersession.getMapper(UserMapper.class);mapper.insertUser(user1);mapper.insertUser(user2);session.commit();// 提交事务}catch(Exceptione){session.rollback();// 回滚事务throwe;}finally{session.close();}10.注解方式替代XMLpublicinterfaceUserMapper{Select(SELECT * FROM users WHERE id #{id})UserselectUser(intid);Insert(INSERT INTO users (name, age) VALUES (#{name}, #{age}))Options(useGeneratedKeystrue,keyPropertyid)intinsertUser(Useruser);}

相关新闻

2026/7/31 19:02:52

Java8 日期处理(详细版)

1. java8 - Instant 重要知识点 定义:Instant 表示时间线上的一个瞬时点,精确到纳秒,主要用于处理机器可读的时间戳,基于 Unix 时间戳(从 1970 年 1 月 1 日 00:00:00 UTC 开始的秒数)。常用方法 now()&…

2026/7/31 19:02:52

如何用大麦抢票助手轻松搞定热门演出票?3大核心优势解析

如何用大麦抢票助手轻松搞定热门演出票?3大核心优势解析 【免费下载链接】damaihelper 支持大麦网,淘票票、缤玩岛等多个平台,演唱会演出抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper 大麦抢票助手是一款免费开…

2026/7/31 19:02:52

Mybatis数据分页的多种实现方式详解

MyBatis 实现数据分页主要有以下几种方式: 1. SQL 分页(手动分页) 在 SQL 语句中直接使用数据库特定的分页语法,如 MySQL 的 LIMIT 和 OFFSET,Oracle 的 ROWNUM 等。 示例(MySQL): S…

2026/7/31 19:52:55

大模型开发 (一)使用Llamafactory来微调qwen模型

大模型开发系统(一) 使用Llamafactory来微调qwen模型 首先介绍Llamafactory是一个开源、高效、易用的LLM微调框架, 由ModelScope社区推出。它支持多种主流开源大模型(如Qwen、Llama、ChatGLM、Baichuan等)的高效微调&a…

2026/7/31 19:52:55

学术研究领域研究空白的识别逻辑与填补路径探析

做科研最耗人的,从来不是难题本身,而是检索、整理、写作、分析里的重复劳动——2026年,一批更精准、更贴合科研全流程的AI工具已成熟,能帮你把时间还给思考。本文实测7款全新工具,覆盖文献检索、阅读、写作、数据分析、…

2026/7/29 22:32:30

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/31 0:01:11

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:01:11

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:01:11

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:38:56

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…