mybatis核心配置文件
-
在resource目录下,创建mybatis-config.xml(官方建议起名方式)
-
核心配置文件常用元素
- properties: 通过resource属性从外部指定属性文件(db.properties),该属性文件描述数据库连接的相关配置(数据库驱动、连接数据库的url、数据库用户名、数据库密码),位置也是在/resources目录下
- settings: 设置MyBatis运行中的一些行为,比如此处设置MyBatis的log日志实现为LOG4J,即使用log4j实现日志功能;cacheEnabled,lazyLoadingEnabled
- environments: 配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,该元素节点不可以配置多个environments子元素节点,但是必须指定其中一个默认运行环境(通过default指定),其子节点environment中配置运行环境ID、事务管理、数据源配置等相关信息,事务管理器除了JDBC还有其他,数据源也有多种
- mappers: 告诉MyBatis去哪里找到SQL映射文件(开发者定义的映射SQL语句),整个项目中可以有1个或多个SQL映射文件。
- typeAliases: 为Java类型命名一个别名(简称)
-
简单测试
*properties:通过该标签来读取Java配置信息,数据源信息写在db.properties文件中,可以通过properties标签来加载该文件
<!--db.properties--> driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC username=root password=123456 <!--在mybatis-config.xml中引入标签--> <!--若在xml文件中与properties文件中设置了相同的属性,则properties文件中优先级更高--> <configuration> <!-- 通过properties标签,读取java配置文件的内容 --> <properties resource="db.properties" /> <!-- 配置mybatis的环境信息 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务控制,由mybatis进行管理 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源,采用dbcp连接池 --> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> </configuration>
- settings:用于设置和改变MyBatis运行中的行为
设置项 作用 默认值 cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关 true lazyLoadingEnabled 全局性设置懒加载。false则所有相关联的都会被初始化加载 true mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camel case)映射。即从经典数据库列名A_COLUMN到经典Java属性名aColumn的类似映射 false logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 未设置 对于日志的实现:
<!--设置日志,标准的日志实现--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <!--设置日志,log4j,要导入依赖且有相应的配置--> <settings> <setting name="logImpl" value="LOG4J"/> </settings> * environments(环境):MyBatis可以配置成适应多种环境,这种机制有助于将SQL映射应用于多种数据库之中 在MyBatis中有两种类型的事务管理器(type=“[JDBC|MANAGED]”) * JDBC:直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围 * MANAGED:几乎没做什么,它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如:JEE应用服务器的上下文ServeltContext) dataSource元素使用标准的JDBC数据源接口来配置JDBC连接对象的资源:有三种内建的数据源类型(也就是type=“[UNPOOLED|POOLED|JNDI]”) * mappers(加载映射文件):告诉MyBatis去哪里找到这些SQL语句 方式一:类资源路径<mapper resource=“”/> ```xml <mapper resource="com/test/mapper/UserMapper.xml"/>
方式二:全限定路径
<mapper url="/mybatis/com/test/mapper/UserMapper.xml" />
方式三:mapper接口的全限定类名
<mapper class="com.test.mapper.UserMapper"/>
此方式要求Mapper接口Mapper映射文件名称相同且在同一个目录下
方式四:载指定包下的所有映射文件
<package name="com.test.mapper"/>
- typeAliases(别名):类型别名是为Java类型设置一个短的名字。它只和XML配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
给实体类取别名,方便在mapper配置文件中使用,如果一个项目中有多个POJO的时候,需要一一配置:
<typeAliases> <typeAlias alias="user" type="com.test.pojo.User" /> </typeAliases>
通过package的name属性直接指定包名:MyBatis会自动扫描指定包下的JavaBean,并默认设置一个别名,默认名称为JavaBean的非限定类名(首字母小写User --> user)
<typeAliases> <package name="com.test.pojo" /> </typeAliases>
- Mybatis已经为许多常见的Java类型内建了相应的类型别名。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性