外贸新品开发网站,徐州建设工程交易网站质量监督,小说网站采集可以做嘛,电商平台项目商业计划书MyBatis 核心配置文件
目录
properties 定义属性及读取属性文件settings 设置运行时行为typeAliases 类型别名定义单个别名批量定义别名typeHandlers 类型处理器Plugins#xff08;后续有文章专门介绍这个#xff09;Environments 运行环境databaseIDProvider 定义数据库厂…MyBatis 核心配置文件
目录
properties 定义属性及读取属性文件settings 设置运行时行为typeAliases 类型别名定义单个别名批量定义别名typeHandlers 类型处理器Plugins后续有文章专门介绍这个Environments 运行环境databaseIDProvider 定义数据库厂商mappers 加载映射文件mapper resource mapper class package name 关于这些配置文件实际上我们只要写一份模板文件以后都是可以参照的特此记录。
以下操作全部是在 MyBatis 的核心配置文件中进行的。 可以查看 MyBats 文档MyBatis 文档
properties 定义属性及读取属性文件
我们可以将数据库驱动用户名密码等信息放到单独的文件中然后在配置文件中加载这个文件这样有利于管理配置信息。
注必须放在资源文件夹(resources)下建立一个 db.properties 在里面写入数据库配置信息。
jdbc.driver com.mysql.jdbc.Driver
jdbc.url jdbc:mysql://localhost:3306/mybatis?characterEncodingutf-8
jdbc.usernameroot
jdbc.password1234然后在配置文件 SqlMappingConfig.xml 中加载这个文件即可
!--定义属性及提取属性文件--
properties resourcedb.properties/接下来在数据库连接池中就可以动态获取 db.properties 中的属性了
!-- 数据库连接池 --
dataSource typePOOLEDproperty namedriver value${jdbc.driver} /property nameurl value${jdbc.url} /property nameusername value${jdbc.username} /property namepassword value${jdbc.password} /
/dataSourcesettings 设置运行时行为
这是 MyBatis 中极为重要的调整设置它们会改变 MyBatis 的运行时行为。 所有属性可以去 MyBatis 官方文档查看MyBatis 官方文档
简单举个示例 设置如上属性开启自动驼峰命名规则映射。
settings!--开启自动驼峰命名规则映射--setting namemapUnderscoreToCamelCase valuetrue/!--配置sql打印--setting namelogImpl valueSTDOUT_LOGGING/
/settings然后 domain 类中的变量名就可以用驼峰命名法与数据库不同。
测试类如果开启自动驼峰命名规则映射后domain 类中必须驼峰命名法否则将会无法查询到。
public void test(){SqlSession sqlSession MybatisUtils.openSession();CustomerMapper mapper sqlSession.getMapper(CustomerMapper.class);Customer customer mapper.getCustomerWithID(2, 李白);System.out.println(customer);sqlSession.close();}运行结果成功查询到结果并且封装成对象。
typeAliases 类型别名
typeAliases 可以为 Java 类型设置一个短的名字。
定义单个别名
下面我们为 com.itlike.domain.Customer 设置了别名Customer
!--定义别名--
typeAliases!--单个别名定义--typeAlias aliasCustomer typecom.itlike.domain.Customer/typeAlias
/typeAliases则在映射文件中resultType 不需要把整个包写上了直接写别名 Customer 即可。
!--根据id查询用户--
select idgetCustomerWithID resultTypeCustomerSELECT * FROM customer WHERE cust_id #{id} AND cust_name #{name}
/select批量定义别名
下面给 com.itlike.domain 这个包下的类设置了别名别名就是类名。
!--定义别名--
typeAliases!--批量定义别名别名为类名--package namecom.itlike.domain/
/typeAliases注如果在定义了别名的包下还有多个子包并且存在相同名称的类名。则与上面批量定义别名冲突了。解决方法 利用 Alias 注解给每个类定义新的名字。
typeHandlers 类型处理器
无论是 MyBatis 在预处理语句PreparedStatement中设置一个参数时还是从结果集中取出一个值时 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。 JDK1.8之后实现全部的JSR310规范日期时间处理上我们可以使用 MyBatis 基JSR310Date and Time API编写的各种日期时间类型处理器。
MyBatis3.4以前的版本需要我们手动注册这些处理器以后的版本都是自动注册的
Plugins后续有文章专门介绍这个
插件是 MyBatis 提供的一个非常强大的机制MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。通过插件来修改 MyBatis 的一些核心行为。
Environments 运行环境
MyBatis 可以配置多种环境比如开发、测试和生产环境需要有不同的配置。 每种环境使用一个 environmen t标签进行配置并指定唯一标识符。 可以通过 environments 标签中的 default 属性指定一个环境的标识符来快速的切换环境。 environment 中有两个子标签transactionManager 事务管理、dataSource数据源。
实际开发中我们使用 Spring 管理数据源并进行事务控制的配置来覆盖上述配置不会使用 MyBatis 的environments 配置。 稍作了解即可。
databaseIDProvider 定义数据库厂商
MyBatis 可以根据不同的数据库厂商执行不同的语句。
!--定义数据库厂商--
databaseIdProvider typeDB_VENDORproperty nameMYSQL valuemysql/property nameDB2 valuedb2/property nameOracle valueoracle /property nameSQL Server valuesqlserver/
/databaseIdProvider在映射文件中就可以指定厂商只有当数据库与指定厂商匹配时才会执行语句。
!--根据id查询用户--
select idgetCustomerWithID resultTypeCustomer databaseIdmysql SELECT * FROM customer WHERE cust_id #{id} AND cust_name #{name}
/selectmappers 加载映射文件
mapper resource
使用相对于类路径的资源
mappersmapper resour cecom/itlike/domain/Customer.xml/mapper
/mappersmapper class
使用 mapper 接口类路径此种方法要求 mapper 接口名称和 mapper 映射文件名称相同且放在同一个目录中。
mappers!--1. 名称必须得要和接口名称一致2. 必须得要和 mapper 接口在同一目录下--mapper classcom.itlike.mapper.CustomerMapper/mapper
/mapperspackage name
加载指定包下的所有mapper接口。此种方法要求mapper接口名称和mapper映射文件名称相同且放在同一个目录中。
!--加载映射文件--
mappers!--1. 名称必须得要和接口名称一致2. 必须得要和 mapper 接口在同一目录下--package namecom.itlike.mapper/
/mappers