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());
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑账户已停用怎么办 鼠标灯亮不动怎么办 电脑用户名被停用怎么办 电脑截图不清晰怎么办 win10电脑磁盘空间不足怎么办 我的用户名忘记怎么办 12306用户名密码忘记怎么办 电脑开机要密码怎么办 三星账户忘记了怎么办 电脑账户忘记了怎么办 电脑启动要密码怎么办 电脑用户密码忘记了怎么办 微信语音听不懂怎么办 法院迟迟不立案怎么办 dns连不上网怎么办 监控显示无硬盘怎么办 电脑获取不到dns怎么办 打游戏cpu过高怎么办 注册了公司没做账怎么办 工行u盾没电了怎么办 属狗和属鸡相害怎么办 被别人说老实怎么办 牛手术后低烧怎么办 按摩把腿按肿了怎么办 吃感冒药特别困怎么办 剖腹产平躺腰疼怎么办 早餐店没生意怎么办 摆小吃摊没生意怎么办 早餐生意不好做怎么办 小吃车不让出摊怎么办 淘宝订单消失了怎么办 工厂搬迁托着不处理怎么办 电磁炉不识别锅怎么办 冰箱电线不够长怎么办 成品衣柜不到顶怎么办 安迪达斯实体店授权书怎么办 松木家具变黄怎么办 松木家具味大怎么办 摆摊卖对联刮风怎么办 买社保如果死了怎么办 黄金为什么不亮怎么办