上一篇👉:MyBatis----Mybatis传统 DAO 层开发
🚴大家好!我是近视的脚踏实地,后边这系列主要是记录自己MyBatis的学习笔记,这篇文章主要来学习mybatis的一些配置开发,这部分了解即可
唯有行动 才能解除你所有的不安
1、配置内容
SqlMapConfig.xml 中配置的内容和顺序:
-properties(属性)
--property
-settings(全局配置参数)
--setting
-typeAliases(类型别名)
--typeAliase
--package
-typeHandlers(类型处理器)
-objectFactory(对象工厂)
-plugins(插件)
-environments(环境集合属性对象)
environment(环境子属性对象)
—transactionManager(事务管理)
—dataSource(数据源)
-mappers(映射器)
--mapper
--package
2、properties(属性)
那么之前我们可以在SqlMapConfig.xml中进行properties的一个配置,如下👇:
然后运行一个查询所有的方法看看配置是否可以使用👇:
那么通过运行结果可以看到是成功了,那么这个写法是被支持的,但是这有点吃饱了撑着的感觉,就是本来下面写的好好的,那为什么又要多写一份搬到上面去。
那么它其实是这样的,我们可以配置properties的内容放到外部的配置文件中,比如在resources目录下创建一个jdbc
然后把配置信息写在这个配置文件中
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root
接着就可以在SqlMapConfig.xml配置文件中引入jdbcConfig.properties配置文件
然后运行一个查询所有的方法看看配置是否可以使用👇:
那么可以发现,它现在是用不了的,因为在jdbcConfig.properties配置文件中的key发生了变化,多了一个jdbc的前缀,所以为了保持一致,SqlMapConfig.xml配置文件中的key也应该保持一致👇:
那么改好后重新运行就没问题了👇:
那么resources也是经常用到的属性,那其实还要一个url属性也比较常用,在mapper标签中也有这个属性,那么url属性是要求按照Url的写法来写地址。
那么URL的全称就是Uniform Resource Locator 统一资源定位符,他是可以唯一标识一个资源的位置
它的写法:协议 主机 端口 URL 比如:http://localhost:8080/mystroe/CategoryServlet
URI:Uniform Resource Identifier 统一资源标识符
比如上边的/mystroe/CategoryServlet,它是可以在 web 应用中唯一定位一个资源的路径
那么这里就可以到idea的工作间,把那个jdbcConfig.properties拖到一个浏览器中,就可以拿到它的url,这时候前边是有file的,说明他是遵循一个file协议的,当然可以直接到盘符下复制上方的地址,然后放到SqlMapConfig.xml配置文件中的url属性中
然后去执行测试类中的查询所有的方法,看看这样配置是否可以成功
那么运行结果发现是没有任何问题的,那么这个mapper上的url属性也是这么使用的,但是要按照url的标准去写
3、typeAliases(类型别名)
那么接着来学习typeAliases标签,这个标签的作用也很简单,就之前提到,这里的parameterType中的类型,这里可以写int,也可以写INT,可以写INTEGER,也可以写integer,也可以写java.lang.integer,包括那个string,都可以完成功能,而如果是引用类型比如说User,就不行,必须写它的全类名,那么这里边的原因也很简单,就是因为它使用了别名,它把我们一些常用的数据类型,比如基本类型都注册进去,而如果我们想用的话,我们也可以自己配置别名的👇:
那么配置好后,当需要写那个全限定类名,我们就可以直接替换成user,或者USER,都不区分大小写👇:
那么继续拿查询所有的方法来进行测试👇:
可以看到同样可以完成功能,也就是说,只要你配置了,就能用,但是当你过多的时候吗,用typeAliase标签来配就很麻烦,于是它就给我们提供了一个叫package这个标签
那么继续拿查询所有的方法来进行测试👇:
那么同理在mapper标签中也可以使用package标签进行配置👇:
那么继续拿查询所有的方法来进行测试👇:
那么这两个标签在实际开发中对我们的作用还是挺大的,他能节省我们很多的代码
4、mappers(映射器)
<mapper resource=" " /> :
使用相对于类路径的资源.
如:<mapper resource=“monster/zf/dao/UserDao.xml” />
<mapper class=" " /> :
使用 mapper 接口类路径
如:<mapper class=“monster/zf/dao/UserDao.xml” />
注意:此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。
注册指定包下的所有 mapper 接口
如:<package name=“monster.zf.mybatis.mapper”/>
注意:此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。
下一篇👉MyBatis---- Mybatis 连接池与事务深入
本篇博客到这就完啦,非常感谢您的阅读🙏,那么下一篇将会学习Mybatis 连接池和事务,如果对您有帮助,可以帮忙点个赞或者来波关注鼓励一下喔😬