Mybatis配置-属性(properties)

这些是可外部化、可替换的属性,可以在典型的Java Properties文件实例中进行配置,或者通过properties元素的子元素传递。例如:

<properties resource="org/mybatis/example/config.properties">
  <property name="username" value="dev_user"/>
  <property name="password" value="F2Fa3!33TYyg"/>
</properties>

这些属性可以在整个配置文件中使用,以替换需要进行动态配置的值。例如:

<dataSource type="POOLED">
  <property name="driver" value="${driver}"/>
  <property name="url" value="${url}"/>
  <property name="username" value="${username}"/>
  <property name="password" value="${password}"/>
</dataSource>

 在这个例子中,用户名和密码将被 properties 元素中设置的值替换。驱动程序和url属性将被包含在config.properties文件中的值所替换。这为配置提供了很多选项。

属性也可以传递到 ​SqlSessionFactoryBuilder.build()​方法中。例如: 

SqlSessionFactory factory =
  sqlSessionFactoryBuilder.build(reader, props);

// ... or ...

SqlSessionFactory factory =
  new SqlSessionFactoryBuilder.build(reader, environment, props);

如果一个属性同时存在于这些地方,MyBatis会按照以下顺序加载它们:

  • 首先读取在properties元素体内指定的属性;
  •  其次读取从properties元素的classpath资源或url属性加载的属性,并覆盖已经指定的重复属性;
  • 最后读取作为方法参数传递的属性,并覆盖可能从properties体和资源/URL属性加载的重复属性。

因此,最高优先级的属性是作为方法参数传递的属性,其次是资源/URL属性,最后是在properties元素体内指定的属性。 

自MyBatis 3.4.2版本开始,您可以像下面这样在占位符中指定默认值: 

<dataSource type="POOLED">
  <!-- ... -->
  <property name="username" value="${username:ut_user}"/> <!-- If 'username' property not present, username become 'ut_user' -->
</dataSource>

 该功能默认是禁用的。如果您在占位符中指定了默认值,您需要通过添加特殊的属性来启用此功能,方法如下:

<properties resource="org/mybatis/example/config.properties">
  <!-- ... -->
  <property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> <!-- Enable this feature -->
</properties>

 这将与属性键中的冒号字符(例如:db:username)或OGNL表达式中的三元运算符(例如:${tableName != null ? tableName : 'global_constants'})产生冲突。如果您使用其中任何一个并且需要默认属性值,则必须通过添加以下特殊属性来更改默认值分隔符:

<properties resource="org/mybatis/example/config.properties">
  <!-- ... -->
  <property name="org.apache.ibatis.parsing.PropertyParser.default-value-separator" value="?:"/> <!-- Change default value of separator -->
</properties>
<dataSource type="POOLED">
  <!-- ... -->
  <property name="username" value="${db:username?:ut_user}"/>
</dataSource>

MybatisX-Generator是一款能够根据数据库表结构自动生成Mybatis代码的工具,可以大大简化Mybatis的开发工作。 使用步骤如下: 1. 添加maven依赖 在项目的pom.xml文件中添加以下依赖: ``` <dependency> <groupId>io.github.mybatisx</groupId> <artifactId>mybatisx-generator-spring-boot-starter</artifactId> <version>1.0.0</version> </dependency> ``` 2. 配置generator.properties文件 在src/main/resources目录下创建generator.properties文件,并配置以下属性: ``` # 数据库连接信息 jdbc.url=jdbc:mysql://localhost:3306/mybatisx?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai jdbc.driver=com.mysql.jdbc.Driver jdbc.username=root jdbc.password=root # 代码生成路径 target.project.dir=./src/main/java target.resources.dir=./src/main/resources # 代码包路径 package.parent=com.mybatisx.demo package.module=user package.mapper=mapper package.entity=entity package.xml=xml # 要生成的表 table.names=tb_user # 生成策略 strategy.include=tb_user strategy.super.entity.class=io.github.mybatisx.support.mapper.BaseModel strategy.super.mapper.class=io.github.mybatisx.support.mapper.BaseMapper strategy.super.service.class=io.github.mybatisx.support.service.BaseService strategy.super.serviceImpl.class=io.github.mybatisx.support.service.impl.BaseServiceImpl ``` 3. 运行MybatisXGeneratorApplication类 在src/main/java目录下创建MybatisXGeneratorApplication类,并运行main方法。 ``` @SpringBootApplication public class MybatisXGeneratorApplication { public static void main(String[] args) { SpringApplication.run(MybatisXGeneratorApplication.class, args); } } ``` 4. 生成代码 执行MybatisXGeneratorApplication的main方法,在控制台中可以看到生成的代码信息。 代码生成后,会在配置的代码生成路径下生成对应的Java文件、Mapper文件和XML文件。 以上就是mybatisx-generator的使用步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值