通过java编程 不使用 XML 构建 SqlSessionFactory

    xiaoxiao2022-07-12  135

    如果你更愿意直接从 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的配置

    最新回复(0)