MyBatis配置文件如何解读,MyBatis为何不写Mapper接口实现类?

摘要:MyBatis核心配置文件详解 多环境 <!--一个环境对应一个数据库,开发环境和生产环境可以对应不同的环境 一般一个数据库对应一个sqlSessionFactory对象,一个sqlSessionFactory对象对应
MyBatis核心配置文件详解 多环境 <!--一个环境对应一个数据库,开发环境和生产环境可以对应不同的环境 一般一个数据库对应一个sqlSessionFactory对象,一个sqlSessionFactory对象对应一个环境 default表示默认环境--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/spring6"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> <environment id="mybatisDB"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/spring1"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> 那么java程序如何使用指定的环境呢? public void testEnvironment() throws IOException { SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); // 没指定环境,默认使用mybatis-config.xml中default指定的环境 SqlSessionFactory sqlSessionFactory = builder.build(Resources.getResourceAsStream("mybatis-config.xml")); // 指定环境为development,使用mybatis-config.xml中id为development的环境配置 SqlSessionFactory sqlSessionFactory2 = builder.build(Resources.getResourceAsStream("mybatis-config.xml"), "development"); } dataSource数据源 dataSource的作用:为程序提供connection对象(凡是给程序提供connection对象的,都叫做数据源)。 数据源是一套规范,有JDK规定。 dataSource是一个接口。数据库连接池就是一个数据源。 type属性指定数据源类型。 <!-- type有三个值可选:POOLED、UNPOOLED和JNDI UNPOOLED:表示不使用连接池,每次获取连接都会创建一个新的连接,使用完后需要手动关闭连接,否则会导致资源泄漏 适合于小型应用或者测试环境,不适合于生产环境,因为频繁创建和关闭连接会带来性能问题。
阅读全文