src/main/java ├── controller (控制層) ├── mapper (持久層接口,替代傳統 DAO) ├── pojo (實體類) ├── service (業務層) └── util (工具類) src/main/resources ├── config │ └── db.properties (數據庫連接參數) ├── mybatis │ └── SqlMapConfig.xml (MyBatis 核心配置,整合 Spring 後幾乎為空) ├── spring │ └── applicationContext-dao.xml (數據源、SqlSessionFactory、Mapper 掃描) └── mapper (Mapper XML 文件目錄)
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/db_house_rent?characterEncoding=UTF-8 jdbc.username=root jdbc.password=123456
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 整合 Spring 後,環境、數據源、Mapper 由 Spring 管理,此處留空 -->
</configuration>
<beans ...>
<context:property-placeholder location="classpath:config/db.properties"/>
<!-- c3p0 數據源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxPoolSize" value="50"/>
<property name="minPoolSize" value="2"/>
<property name="maxIdleTime" value="60"/>
</bean>
<!-- SqlSessionFactory -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:config/mybatis/SqlMapConfig.xml"/>
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations">
<list><value>classpath*:/mapper/*.xml</value></list>
</property>
</bean>
<!-- Mapper 掃描器:自動註冊 Mapper 接口,無需 @Repository 或 component-scan -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.magic.rent.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSession"/>
</bean>
</beans>
文件:generatorConfig.xml(放在 resources 根目錄)
src/test/java 下的 mybatis.pojo、mybatis.mapper 包<table tableName="SYS_USERS" enableCountByExample="false" ... /> <table tableName="SYS_ROLES" ... /> ...
測試目錄結構圖:

Generator 運行圖:
