如果你更愿意直接从 Java 代码而不是 XML 文件中创建配置,或者想要创建你自己的配置构建器,MyBatis 也提供了完整的配置类,提供所有和 XML 文件相同功能的配置项。
考虑到官网所写的不是很详细,踩了挺多坑,所以特写此文章记录下来。
@Test
public void testMamin() throws Exception {
//创建连接池
DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://15.134.120.5:3305/shvcxdfow?serverTimezone=Hongkong", "pafdsu", "pddadsfa");
//事务
TransactionFactory transactionFactory = new JdbcTransactionFactory();
//创建环境
Environment environment = new Environment("development", transactionFactory, dataSource);
//创建配置
Configuration configuration = new Configuration(environment);
//开启驼峰规则
configuration.setMapUnderscoreToCamelCase(true);
//加入资源(Mapper接口)
configuration.addMapper(UserMapper.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
SqlSession session = sqlSessionFactory.openSession();
try {
//statement:sql唯一标识(mapper.xml映射文件中的id标识)
//parament:参数
User user = session.selectOne("mapper.UserMapper.findById", 1);
System.out.println(user);
//操作数据时,需要有提交操作
session.commit();
} finally {
session.close();
}
}
注意该例中,configuration 添加了一个映射器类(mapper class)。映射器类是 Java 类,它们包含 SQL 映射语句的注解从而避免依赖 XML 文件。不过,由于 Java 注解的一些限制以及某些 MyBatis 映射的复杂性,要使用大多数高级映射(比如:嵌套联合映射),仍然需要使用 XML 配置。有鉴于此,如果存在一个同名 XML 配置文件,MyBatis 会自动查找并加载它(在这个例子中,基于类路径和 UserMapper.class 的类名,会加载 UserMapper.xml)。
此处必须要把UserMapper.class 和 UserMapper.xml 放在同一个目录下,因为在源码中写死了读同一路径xml,
所以,代码目录如下:
:
并且,需要在pom.xml中将src/main/java 下的xml文件打包进来,否则编译时无法把xml文件引入的,如下为pom.xml的配置