Mybatis学习笔记(四)

本文详细介绍了MyBatis中SQL映射文件的使用,包括select、insert、update、delete、sql等元素的属性及用途,如主键回填、缓存控制和可重用sql代码片段。同时讲解了parameterType和resultType的映射类型,包括基本数据类型、POJO、列表和HashMap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL映射文件(xxxMapper.xml)

SQL映射文件是用来配置SQL映射语句的,根据不同类型的sql语句选择不同的标签,常用的顶级元素有:

元素描述
resultMap(重要)用于接收查询结果
sql可重用语句块
select映射查找语句
update映射修改语句
insert映射插入语句
delete映射删除语句

select主要元素

select内部属性描述
id在命名空间中唯一的标识符,可以被用来引用这条语句
parameterType传入这条语句的参数类的完全限定名或别名
resultType从这条语句中返回的期望类型的类的完全限定名或别名,如果是集合应该填写集合所包含的类型
resultMap自定义的 resultType
flushCache将其设置为 true 后,只要语句被调用,都会导致本地缓存和二级缓存被清空,默认值:false
useCache将其设置为 true 后,将会导致本条语句的结果被二级缓存缓存起来,默认值:对 select 元素为 true

insert主要元素

insert内部属性描述
id在命名空间中唯一的标识符,可以被用来引用这条语句
parameterType传入这条语句的参数类的完全限定名或别名
useGeneratedKeys(仅适用于 insert 和 update)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系型数据库管理系统的自动递增字段),默认值:false

主键回填

在insert元素中,有一个非常重要且常用的属性——useGeneratedKeys,它的作用的主键回填,就是将当前插入数据的主键返回。例如在插入语句中,我们没有插入主键 Id 列,因为在mysql数据库中将它设置为自增主键,数据库会自动为其生成对应的主键,所以没必要插入。但是有些时候我们还需要继续使用这个主键,用以关联其它业务,所以十分有必要获取它。比如在新增用户的时候,首先会插入用户的数据,然后插入用户和角色关系表,而插入用户时如果没办法取到用户的主键,那么就没有办法插入用户和角色关系表了,因此这个时候需要拿到对应的主键,以方便关联表的操作。

使用案例留空

update和delete元素

它们和insert元素的属性差不多,执行完后也会返回一个整数,用来表示该SQL语句影响了数据库的记录行数

sql元素

sql元素是用来定义可重用的 sql代码片段,这样在字段比较多的时候,以便在其它语句中使用。

<!--定义sql代码片段-->
<sql id="userCols">
    id,username,age,sex,address
</sql>

sql元素还支持变量的传递

<!--定义sql代码片段-->
<sql id="userCols">
    ${alias}.id,${alias}.username,${alias}.age,${alias}.sex,${alias}.address
</sql>
<!-- 查询所有用户 -->
<select id="selectAllUser" resultType="com.thr.entity.User">
    select <include refid="userCols">
              <property name="alias" value="u"/>
           </include>
    from t_user u
</select>

parameterType

传入类型包括以下几类

1.映射基本数据类型(即八大基本数据类型,比如int,boolean,long等类型)

2.映射pojo类型(即普通的对象)

3. 包装pojo类型(包装pojo类型在Mybatis使用(二)中有使用示例,即内部属性为对象引用,集合等)

4.映射map类型 (还没用到)

resultType

1.映射基本数据类型(即八大基本数据类型,比如int,boolean,long等类型)

2.映射pojo类型(即普通的对象)

3.映射pojo列表(映射多列数据)

映射单个pojo对象和映射pojo列表映射文件中的resultType都配置为pojo类型。区别只是返回单个对象是内部调用selectOne返回pojo对象,返回pojo列表时内部调用selectList方法

<!-- 查询所有用户 -->
<select id="selectAllUser" resultType="com.thr.entity.User">
    select * from t_user
</select>

4.映射hashmap

resultMap

<think>好的,我现在需要帮用户找到Anaconda 2025年最新版的安装教程。首先,用户提到了引用[1]是关于Anaconda在Win10下的使用心得,里面提到了配置和包含的应用,但可能已经过时了,因为用户需要的是2025年的最新版教程。引用[2]是有关SATA和Linux的背景文章,可能不相关。 接下来,我应该考虑Anaconda的官方渠道,比如官方网站,通常最新版的安装指南会在那里发布。虽然现在可能还没有2025年的版本,但用户可能假设到那时安装步骤不会有太大变化,只是版本号不同。需要提醒用户访问官网获取最新信息。 然后,安装步骤通常包括下载安装包、运行安装程序、配置环境变量等。需要注意不同操作系统(Windows、macOS、Linux)的差异。例如,在Linux下可能需要使用bash脚本安装,而Windows是exe文件。 还要考虑用户可能遇到的问题,比如环境变量设置、安装后的验证、以及常见错误的解决方法。例如,安装完成后在命令行输入conda --version是否显示正确版本。 另外,用户可能对Anaconda的组件感兴趣,比如Navigator、Conda包管理等,可以简要提及。同时,生成的相关问题需要围绕安装后的配置、环境管理、版本差异等,帮助用户进一步了解。 最后,确保按照用户的要求使用正确的LaTeX格式,比如行内公式用$...$,独立公式用$$...$$,但当前问题不涉及数学公式,所以可能不需要使用。但需要检查是否有其他需要格式化的地方,确保回答结构清晰,步骤详细,符合用户的系统级指令。</think>### Anaconda 2025最新版安装教程 #### 1. 访问Anaconda官网 进入[Anaconda官方网站](https://www.anaconda.com/),导航至"Downloads"页面,选择与操作系统(Windows/macOS/Linux)对应的**2025.x.x版本**安装包[^1]。 #### 2. 安装步骤(以Windows为例) ```bash # 验证安装成功的示例命令 conda --version # 应输出 conda 2025.x.x ``` 1. **运行安装程序** - 双击下载的`.exe`(Windows)/`.pkg`(macOS)/`.sh`(Linux)文件 - 注意勾选"Add Anaconda to my PATH environment variable"(建议新手勾选) 2. **高级配置** - 安装路径建议保持默认`C:\ProgramData\Anaconda3`(Windows) - 对于Linux用户,可通过终端执行: ```bash bash ~/Downloads/Anaconda3-2025.x-Linux-x86_64.sh ``` #### 3. 验证安装 $$ \text{在命令行执行} \quad \boxed{\texttt{conda list}} \quad \text{应显示已安装的包列表} $$ #### 4. 组件说明 - **Anaconda Navigator**:图形化包管理界面 - **Conda**:核心命令行工具(支持创建虚拟环境) - **Jupyter Notebook**:预装的计算笔记本工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值