MyBatis篇】四. MyBatis高级第三章 注解开发(共三章)

2024-03-28 18:32

本文主要是介绍MyBatis篇】四. MyBatis高级第三章 注解开发(共三章),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MyBatis高级第三章 注解开发

github源码(day56-mybatis-senior) https://github.com/1196557363/ideaMavenProject
【MyBatis篇】四. MyBatis高级第一章 #{}和${}符号的区别
【MyBatis篇】四. MyBatis高级第二章 缓存

项目准备
  1. 因为在同一个module中所以大环境不用改,参考第一章的项目准备
  2. 将接口com.wpj.dao.IUserDao2 改为 com.wpj.dao3.IUserDao2 已示区分知识点
  3. 注解开发可以不用mapper映射文件
  4. MyBatis的mapper映射记得加。

1. Select

1.1 MyBatis.xml
<mappers><mapper resource="mapper/IUserDao2.xml"/><mapper resource="mapper2/IUserDao2.xml"/><!--如果是注解开发这里要写接口--><mapper class="com.wpj.dao3.IUserDao2" />
</mappers>
1.2 IUserDao2接口
package com.wpj.dao3;import com.wpj.bean.*;
import org.apache.ibatis.annotations.*;/*** ClassName: IUserDao2* Description:** @author JieKaMi* @version 1.0* @date: 2020\1\7 0007 19:02* @since JDK 1.8*/
public interface IUserDao2 {@Select(value="select * from user where id = #{id}")User getUserById(Integer id);
}
1.3 test
import com.wpj.bean.*;import com.wpj.dao3.*;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import org.junit.*;import java.io.*;/*** ClassName: MyBatisTest* Description:** @author JieKaMi* @version 1.0* @date: 2020\1\7 0007 19:19* @since JDK 1.8*/
public class MyBatisTest3 {@Testpublic void testGetUserById(){String config = "MyBatis.xml";InputStream is = null;try {is = Resources.getResourceAsStream(config);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);SqlSession sqlSession = sqlSessionFactory.openSession();IUserDao2 userDao = sqlSession.getMapper(IUserDao2.class);User user = userDao.getUserById(1);System.out.println(user);sqlSession.close();} catch (IOException e) {e.printStackTrace();} finally {if(is!=null) {try {is.close();} catch (IOException e) {e.printStackTrace();}}}}
}

2 Results

@Results(value={@Result(id =true, property="id", column="id"),@Result(property="name", column="name"),@Result(property="pwd", column="pwd"),@Result(property="age", column="age")})
@Select(value="select * from user where id = #{id}")
User getUserById(Integer id);

3 ResultMap复用

@Results(id="userResults",value={@Result(id =true, property="id", column="id"),@Result(property="name", column="name"),@Result(property="pwd", column="pwd"),@Result(property="age", column="age")})
@Select(value="select * from user where id = #{id}")
User getUserById(Integer id);@ResultMap("userResults")
User getUserById2(Integer id);

这篇关于MyBatis篇】四. MyBatis高级第三章 注解开发(共三章)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856377

相关文章

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总