mybatis 加載配置文件的方法


一.  使用sqlSessionFactory mapperLocations 進行加載

<!-- SessionFactory -->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" scope="singleton">

<property name="dataSource" ref="dataSource" />

<property name="configLocation" value="classpath:mybatis-config.xml" />

<!-- 映射文件路徑,可以集中寫到一個地方,也可以與dao寫到一個地方,支持多個路徑,支持通配符-->

<property name="mapperLocations" value="classpath:mapper/*.xml,classpath:com/sunny/shop/*/dao/*.xml">

</property>

</bean>

此種方法可以使用通配符, 可以指定位置, 可以使用多個位置

二.   使用MapperScannerConfigurer進行掃描

<!-- 掃描指定包下的所有接口,創建代理類,如果mysql的配置文件名與接口名相同的話,可以不用一一配置 -->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="com.sunny.shop" />

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>

</bean>

此種方法可以掃描指定包下的接口, 如果需要掃描配置文件, 則配置文件須與對應的DAO接口處於同一目錄, 且名字必須相同

.配置 mybatis mapper

<mappers>

<!-- 既可寫映射文件, 也可寫對應的接口 -->

<!--<mapper resource="com/mybatis/student/StudentMapper.xml" />

<mapper resource="com/mybatis/classes/ClassesMapper.xml" />

<mapper class="com.sunny.shop.user.dao.UserDao" />

-->

</mappers>

PS:下面給大家介紹下mybatis 加載配置文件的兩種方式

package com.atguigu.day03_mybaits.test;

import java.io.IOException;

import java.io.InputStream;

import java.io.Reader;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Test {

public static void test1(){

///加載mybatis的配置文件(它也加載關聯的映射文件)

String str="conf.xml";

InputStream is=Test.class.getClassLoader().getResourceAsStream(str);

//構建sqlSession的工廠

SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);

SqlSession session=factory.openSession();

//映射sql的標識字符串,是在影射文件中找到namespace+“”+select中的id

String statement="com.atguigu.day03_mybaits.userMapper.getUser";

//執行查詢返回一個唯一user對象的sql

User user=session.selectOne(statement, 1);

System.out.println(user);

}

public static void test2() throws IOException{

///加載mybatis的配置文件(它也加載關聯的映射文件)

String resource = "conf.xml";

//加載mybatis的配置文件(它也加載關聯的映射文件)

Reader reader = Resources.getResourceAsReader(resource);

//構建sqlSession的工廠

SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);

SqlSession session=factory.openSession();

//映射sql的標識字符串,是在影射文件中找到namespace+“”+select中的id

String statement="com.atguigu.day03_mybaits.userMapper.getUser";

//執行查詢返回一個唯一user對象的sql

User user=session.selectOne(statement, 2);

System.out.println(user);

}

public static void main(String[] args) throws IOException {

test1();

test2();

}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM