多学一招:使用工具类创建SqlSession
文件7-1 MybatisUtils.java
这样,在使用时我们就只创建了一个SqlSessionFactory对象,并且可以通过工具类的getSession()方法,来获取SqlSession对象。
7.2 配置文件
7.2.2 <properties>元素
在项目的src目录下,添加一个全名为db.properties的配置文件,编辑后的代码如下图所示:
在mybatis-config.xml中配置元素< properties >,具体如下:
修改配置文件中数据库连接的信息,具体如下:
7.2.4 <typeAliases>元素
使用<typeAliases>元素配置别名的方法,当POJO类过多时,还可以通过自动扫描包的形式自定义别名,具体实例如下:
7.2.6 <ObjectFactory>元素
自定义一个对象工厂。示例代码如下所示:
在配置文件中使用<ObjectFactory>元素配置自定义的ObjectFactory,如下所示:
7.3映射文件
7.3.3 <insert>元素
如果使用的数据库支持主键自动增长,那么可以通过keyProperty属性指定PO类的某个属性接收主键返回值(通常设置到id属性上),然后将userGeneratedKeys的属性值设置为true,使用实例如下:
使用上述配置执行插入后,会返回插入成功的行数,以及插入行的主键值。可通过下述代码测试:
执行程序后,控制台输出结果如图:
7.3.4 <update>元素和<delete>元素
<update>元素和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数,使用实例如下:
7.3.5 <sql>元素
在实际开发中,可以更加灵活地定义SQL片段,其中实例如下:
执行程序后,控制台输出结果如图:
7.3.6 <resultMap>元素
在mybatis数据库中,创建一个t_user表,并插入几条数据:
- 在com.itheima.po包中,创建持久化类User,并在类中定义id、name和age属性,以及其getter/setter方法和toString()方法,文件内容如下图所示:
在com.itheima.mapper包中,创建映射文件UserMapper.xml,并在映射文件中编写映射查询语句,文件内容如下图所示:
在配置文件mybatis-config.xml中,引人UserMapper.xml.
在测试类中,编写测试方法fingAllUserTest(),代码如下所示:
使用JUnit4执行上述方法后,控制台的输出结果如下图所示:
从图中可以看出,虽然t_user表的列名与User对象的属性名完全不一样,但查询出的数据还是被正确地封装到了User对象中。