MyBatis入门时的一些细节问题

今天刚刚使用MyBatis,感觉是一种比较不错的ORM框架。今晚上学习的时候碰到一些问题,记录一下。

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, 一对一, 一对多日后补充上去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值