2016-09-21 97 views
0

在mybatis-config.xml中,不同的用戶如何使用不同的用戶名登錄到同一個數據源?例如,我在一個獨特的Oracle數據源中有「學生」,「教師」和「管理員」三種不同的模式。我應該如何配置mybatis讓不同的用戶通過不同的用戶名登錄唯一的數據源?它是否必須配置多個「環境」部分?在mybatis-config.xml中,不同的用戶如何使用不同的用戶名登錄到同一個數據源?

上面有一些疑惑的概念,讓我說我的問題: 我可以配置多個數據源具有相同的驅動程序和url屬性,但用戶名不同嗎?

回答

0

您可以使用可以訪問所有三個用戶/模式的憑據來配置單個數據源。

在你的mybatis查詢中,你需要在表名前添加用戶/模式名。

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
    <environments default="development"> 
    <environment id="development"> 
     <transactionManager type="JDBC"/> 
     <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> 
    <mappers> 
    <mapper resource="BlogMapper.xml"/>  
    </mappers> 
</configuration> 

BlogMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper 
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 

<mapper namespace="org.mybatis.example.BlogMapper"> 

    <select id="selectBlog" resultType="Blog"> 
    select * from blog.blogs where id = #{id} 
    </select> 

    <select id="selectUser" resultType="User"> 
    select * from security.users where id = #{id} 
    </select> 

</mapper> 

注意事項使用blog.blogssecurity.users引用的表。

+0

不好意思?什麼是憑證?你能給我一段XML格式的代碼嗎? – kenneth

+0

憑證我的意思是數據庫用戶名/密碼。更新了包含示例配置的答案。 –

相關問題