(Java)Mybatis学习笔记(二)-创新互联
继续学习MyBatis核心配置文件章节,不负年华
成都创新互联公司-成都网站建设公司,专注做网站、网站制作、网站营销推广,国际域名空间,网站空间,网站托管、服务器租用有关企业网站制作方案、改版、费用等问题,请联系成都创新互联公司。MyBatis核心配置文件核心配置文件中的 标签详解
environments标签 | 含义 | 属性 | 拓展 |
---|---|---|---|
environments | 配置多个连接数据库的环境 | default:设置默认使用的环境id | 无 |
environment | 配置多个连接数据库的环境 | id:表示连接数据库环境的唯一标识,不能重复 | 无 |
transactionManager | 设置事务管理方式 | type=JDBC/MANAGED | JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理,事务的提交和回滚需要手动处理MANAGED:被管理,例如Spring |
dataSource | 配置数据源 | type=POOLED/UNPOOLED/JNDI :设置数据源的类型 | POOLED:表示使用数据库连接池缓存数据库连接UNPOOLED:表示不使用数据库连接池JNDI:表示使用上下文中的数据库连接 |
property | 数据库连接相关配置 | name value | 无 |
实际开发中,习惯将数据源的配置信息单独抽取成一个properties文件,然后引入
新建一个properties文件
为什么要用Resource Bundle来创建properties文件,这是个问题
看了官网的解释,我有了那么一丝明悟
Resource Bundle 翻译过来 资源包 或称 资源束
2020.3版本时官网的释义
用通俗的话来讲,Resources目录下用于存放配置文件,而部分配置文件可能文件特性相似(简单理解就是后缀名相同),就整合到一个目录下,方便找寻和管理(这是个人浅薄的理解)
后缀名默认为 properties
就算起个别名,也最好见名识义
报错:元素类型为 “configuration” 的内容必须匹配 “(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)”
意思是configuration中的标签要按上述顺序书写
mappers别名常以包为单位,将包以下所有的结果类型设置默认的类型别名,即类名不区分大小写
错误的建包示范
正确的建包示范
MyBatis获取参数值的两种方式 搭建一个mybatis工程以包为单位引入映射文件
要求:
1.mapper接口所在的包要和映射文件所在的包一致
2.mapper接口要和映射文件的名字一致
pom文件中导入依赖
pom中添加packaging标签
项目产生的构件类型,例如jar、war、pom
项目打包类型:pom、jar、war
pom --------->父类型都为pom类型jar --------->内部调用或者是作服务使用war --------->需要部署的项目
MyBatis获取参数值的两种方式:${}
和#{}
${}
本质字符串拼接#{}
本质占位符赋值
${}
使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号
#{}
使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号
mapper接口方法的参数为单个的字面量类型
遇见一个问题,传递中文参数返回值为空(已解决)
在properties文件中的数据库url后追加?useUnicode=true&characterEncoding=utf8
通过测试知道大括号中的参数名可以任意,但建议与参数名保持一致
小结:可以通过${}
和#{}
以任意的名称获取参数值,但需要注意${}
单引号问题
mapper接口方法的参数为多个时
此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
- a>以arg0,arg1…为键,以参数为值
- b>以param1,param2…为键,以参数为值
因此只需要通过#{}
或${}
以键的方式访问值即可,但需要注意${}
的单引号问题
若mapper接口方法的参数有多个时,可以手动将这些参数放在一个map中存储
只需通过#{}
或${}
以键的方式访问值即可,但要注意${}
的单引号
mapper接口方法的参数是实体类类型的参数
只需通过${}
或#{}
以属性方式访问属性值即可,但需要注意${}
的单引号问题
mapper接口方法参数有多个
命名参数
使用@Param注解命名参数
此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
- a>以@Param注解的值为键,以参数为值
- b>以param1,param2…为键,以参数为值
因此只需通过#{}
或${}
以键的方式访问值即可,但要注意单引号问题
听懂了一小小小部分,就是判断存入的键是否是param1、param2,不是就以这种方式存储(大概是这么个意思~)
分析不下去了,太难了,太烧脑了~
这章节学习的难度不算很大,也就有点小问题,但都解决了,也就是源码分析暂时解决不了,所以要好好学,好好看,到时候学成了,再回过头来看
简单回顾下
文章目录- 前言
- MyBatis核心配置文件
- environments
- properties
- typeAliases
- mappers
- MyBatis获取参数值的两种方式
- 搭建一个mybatis工程
- 核心配置文件模板
- 映射文件模板
- 封装SqlSessionUtils工具类并测试功能
- #{}和${}
- MyBatis获取参数值的五种情况
- :one:单个字面量类型
- :two:多个字面量类型的参数
- :three:map集合类型的参数
- :four:实体类类型的参数
- :five:使用@Param标识参数
- @Param源码分析
- 小结
继续努力,赶往下一个知识点
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享名称:(Java)Mybatis学习笔记(二)-创新互联
文章链接:http://ybzwz.com/article/dghejp.html