mybatis properties属性
来源:互联网 发布:淘宝口罩属于什么类目 编辑:程序博客网 时间:2024/05/19 05:01
mybatis properties属性
properties属性 可以为系统配置一些运行参数,这些配置可以在xml中完成,也可以在properties文件中编写。在Mybatis中提供了三种方式让我们使用properties
1. property 子元素
2. properties文件
3. 程序代码传递
property 子元素
我们可以在properties中配置数据源信息,然后在配置环境的时候引用properties中的属性。
<properties> <property name="db.driver" value="com.mysql.jdbc.Driver" /> <property name="db.url" value="jdbc:mysql://127.0.0.1:3306/ssm" /> <property name="db.username" value="root" /> <property name="db.password" value="root" /> </properties>
配置数据源时候引用properties中的值。
<dataSource type="POOLED"> <property name="driver" value="${db.driver}" /> <property name="url" value="${db.url}" /> <property name="username" value="${db.username}" /> <property name="password" value="${db.password}" /> </dataSource>
这种方式适用于属性参数不多的情况,当属性较多时建议使用properties文件。
properties文件
首先我们创建一个file,后缀名为.properties ,放到classpath路径下。
#注释mysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/cy44_tx?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=truemysql.username=rootmysql.password=root
在properties中的注释以#开头,其中 = 前面的为键,后面为值。
将mybatis中的properties元素中的resource属性赋值为jdbc.properties文件的路径,在数据源配置时,同property模式一样,以${ }引用键值即可。
<properties resource="jdbc.properties"/> <!-- 注释中的代码和上一行代码效果一样 --> <!-- <properties> <property name="db.driver" value="com.mysql.jdbc.Driver" /> <property name="db.url" value="jdbc:mysql://127.0.0.1:3306/ssm" /> <property name="db.username" value="root" /> <property name="db.password" value="root" /> </properties> -->
也可以写成这样
<properties resource="jdbc.properties"> <property name="db.driver" value="com.mysql.jdbc.Driver" /> <property name="db.url" value="jdbc:mysql://127.0.0.1:3306/ssm" /> <property name="db.username" value="root" /> <property name="db.password" value="root" /> </properties>
但是property子元素已经无效,因为properties文件方式优先级高于property子元素方式。
在真实开发时,开发人员无法获取真实的数据库信息,只有被加密过的数据库信息,通过给定的解密方法进行使用,这时我们要在创建SqlSessionFactroy对象之前将数据库信息解密并重置到配置文件中。
首先,我们先模拟一个解密方法
public class CodeUtils { public static String decode(String code){ System.out.println("模拟解密过程"+ code); return code; }}
给出将要重置到配置文件的properties
import java.io.IOException;import java.io.InputStream;import java.util.Properties;import org.apache.ibatis.io.Resources;public class SetProperties { public static Properties setJdbcProperties() throws IOException{ InputStream in = Resources.getResourceAsStream("jdbc.properties"); Properties properties = new Properties(); properties.load(in); String username = properties.getProperty("mysql.username"); String password = properties.getProperty("mysql.password"); properties.put("mysql.username",CodeUtils.decode(username)); properties.put("mysql.password",CodeUtils.decode(password)); return properties; }}
这个阶段主要分为获取jdbc.properties文件中加密的字段,解密后放到新的properties文件中。
然后通过SqlSessionFactoryBuilder类中的builder方法重置到jdbc.properties中同时创建我们的SqlSessionFactory对象。
这一步只需要将我们的properties文件作文参数放到以前的SqlSessionFactoryUtils类中的getSqlSessionFactory方法里面的build方法中即可。
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,SetProperties.setJdbcProperties());
- Mybatis之properties属性
- mybatis properties属性
- Mybatis 属性配置文件 application.properties
- Mybatis Configuration.xml中properties属性定义
- Mybatis配置之<properties>属性配置元素详述
- 一起来学习Mybatis(三)-配置文件之properties 属性
- Properties属性
- 属性 (Properties)
- Mybatis的log4j.properties
- AAA java向xml文件传值是通过属性properties进行的 spring + mybatis 动态切换数据源
- spring+mybatis 注入properties文件中属性失败导致datasource加载失败的原因和解决
- spring+mybatis+druid无法读取jdbc.properties属性导致datasource加载失败
- Properties属性文件学习
- Properties属性持久化
- 读取属性文件*.properties
- Properties属性类
- properties属性加载
- 获取属性文件properties
- jquery 一键复制文本到剪切板
- 【模板】gcd+lcm
- 我的加密数据
- 【POJ 1273 Drainage Ditches】 & 网络流 & Edmonds-Karp算法
- java鬼混笔记:shiro 11、唯一登录和登录退出Bug
- mybatis properties属性
- Jzoj1309 最长二重串
- python之numpy库学习常用函数(构建数据)
- 面试常考 TCP与UDP协议区别 TCP连接三次握手与四次握手
- 数据结构-栈的静态顺序存储表示-初始化压栈弹栈
- java基础——时间转换
- 在arcgis中若想保存一个数据的符号设置不变应该怎么做?
- SurfaceView的系列用法(未完)
- selenium、python模拟登陆淘宝