zoukankan      html  css  js  c++  java
  • 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();

    }

    }

  • 相关阅读:
    BootStrap 模态框禁用空白处点击关闭
    【云计算】使用nsenter进入Docker容器进行调试
    【架构】Nginx如何设置X-Request-ID请求头,记录请求时间:毫秒?
    【架构】微服务系列文章
    【云计算】OpenStack项目全面介绍
    【云计算】CloudFoundry参考资料
    【云计算】OpenShift容器服务参考
    【Web】Django OAuth invalid_grant error
    【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和"普通变量"之完全解读
    【云计算】OpenStack Horizon DashBoard定制化,完整实现前后台交互
  • 原文地址:https://www.cnblogs.com/-zpy/p/8654056.html
Copyright © 2011-2022 走看看