Case
📦 Package:

💻 Code:
- pom.xml
- mybatis-config.xml 配置事务、数据源等,以及每个mapper.xml都要在这注册
- jdbc.properties 专门放数据库相关的配置
- MybatisConfig.java 配置SqlSessionFactory
- UserMapper.xml 每个Mapper的sql编写,namespace中的包名要和Dao/Mapper接口的包名一致
- UserDao.java 两种SQL撰写方式,XML或注解参数
- User.java
- UserDaoTest.java
- user.sql
生命周期

SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。可以用单例模式或静态单例模式。
SqlSessionFactory 有六个方法创建 SqlSession 实例。
每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。
每次收到 HTTP 请求,就可以打开一个 SqlSession,返回一个响应后,就关闭它。