MyBatis入门时的一些细节问题
2016-05-11 01:52
225 查看
今天刚刚使用MyBatis,感觉是一种比较不错的ORM框架。今晚上学习的时候碰到一些问题,记录一下。
1. 采用声明Interface调用SQL语句的时候,如果SQL语法有问题,这个方式是不能够看出来的。使用调用映射器配置文件的方式,可以直接执行SQL文件,可能会发现问题出现在哪里。在实现过程中,通过直接调用SQL语句,发现了driver名称拼写错误,select语句拼写错误,而在调用映射器Mapper接口时并没有给出任何有效信息。
2. 在要使用自定义的resultMap作为返回参数的时候,要使用标签resultMap 而不是resultType。例如:
在调用studentResult的方法中要使用resultMap标签:
3.每一个线程应该有它自己的
SqlSession 实例。SqlSession
对象实例不是线程安全的,并且不被共享。所以
SqlSession 的作用域最好就是其所在方法的作用域。从
Web 应用程序角度上看,SqlSession
应该存在于 request
级别作用域上。
对于封装的service类,应该在每个增删改查方法中使用工厂创建新的session。如:
SqlSession
session
=
MyBatisSessionFactory.openSession();
4. 关于resultMap, 一对一, 一对多日后补充上去。
1. 采用声明Interface调用SQL语句的时候,如果SQL语法有问题,这个方式是不能够看出来的。使用调用映射器配置文件的方式,可以直接执行SQL文件,可能会发现问题出现在哪里。在实现过程中,通过直接调用SQL语句,发现了driver名称拼写错误,select语句拼写错误,而在调用映射器Mapper接口时并没有给出任何有效信息。
2. 在要使用自定义的resultMap作为返回参数的时候,要使用标签resultMap 而不是resultType。例如:
<resultMap type="Student" id="studentResult"> <id property="studId" column="stu_id"/> <result property="name" column="name"/> <result property="email" column="email"/> <result property="dob" column="dob"/> </resultMap>
在调用studentResult的方法中要使用resultMap标签:
<select id="getAll" resultMap="studentResult"> select * from students </select>
3.每一个线程应该有它自己的
SqlSession 实例。SqlSession
对象实例不是线程安全的,并且不被共享。所以
SqlSession 的作用域最好就是其所在方法的作用域。从
Web 应用程序角度上看,SqlSession
应该存在于 request
级别作用域上。
对于封装的service类,应该在每个增删改查方法中使用工厂创建新的session。如:
SqlSession
session
=
MyBatisSessionFactory.openSession();
4. 关于resultMap, 一对一, 一对多日后补充上去。
相关文章推荐
- 深入浅析mybatis oracle BLOB类型字段保存与读取
- MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
- MyBatis学习笔记(二)之关联关系
- 浅析Mybatis 在CS程序中的应用
- Java Mybatis框架入门基础教程
- Windows下Java+MyBatis框架+MySQL的开发环境搭建教程
- Mybatis与Ibatis的区别
- Java简单实现SpringMVC+MyBatis分页插件
- MyBatis批量添加、修改和删除
- MyBatis与Hibernate的比较
- 浅析mybatis和spring整合的实现过程
- 在Java的MyBatis框架中建立接口进行CRUD操作的方法
- 整理Java的MyBatis框架中一些重要的功能及基本使用示例
- mybatis的动态sql详解(精)
- MyBatis实践之动态SQL及关联查询
- 详解Mybatis动态sql
- Mybatis实现增删改查及分页查询的方法
- MyBatis入门学习教程(一)-MyBatis快速入门
- Java的MyBatis框架中对数据库进行动态SQL查询的教程