无法在 myBatis 中创建 SqlSession
Cannot create SqlSession in myBatis
我有一个 spring restful 网络服务。现在我要把mybatis集成到我的项目中。但是,我在创建 SqlSession 时遇到了问题。
从 CardValidationController(位于控制器包中),我从 CardValidationService(位于 dao 包中)调用方法 getCardNoBy。
调试了一下发现卡在create SqlSession:
SqlSession session = sqlSessionFactory.openSession();
任何解决方案将不胜感激。谢谢
我会做的是尝试一些非常不同的东西,使用 MyBatis-Spring 映射器接口,它允许 MyBatis 创建简单的、线程安全的映射器对象,可以注入到你的代码中。此映射器对象将有效地允许您通过方法访问映射的查询。
一个例子是 here,但基本思想是简单地创建一个镜像 xml 映射器定义的接口,例如...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis3.mappers.StudentMapper">
<resultMap type="Student" id="StudentResult">
<id property="studId" column="stud_id" />
<result property="name" column="name" />
<result property="email" column="email" />
<result property="dob" column="dob" />
</resultMap>
<select id="findAllStudents" resultMap="StudentResult">
SELECT * FROM STUDENTS
</select>
<!-- etc. -->
</mapper>
...可以通过接口映射 com.mybatis3.mappers.StudentMapper
:
public interface StudentMapper {
List<Student> findAllStudents();
// etc.
}
...这将允许您简单地调用 StudentMapper.findAllStudents()
而不是手动调用您的查询。
您可以通过 MyBatis-Spring 处理映射器,参见 here。最简单的方法是扫描它们,然后像处理任何其他 Spring 托管 bean 一样注入它们:
<mybatis:scan base-package="org.mybatis.spring.sample.mapper" />
我有一个 spring restful 网络服务。现在我要把mybatis集成到我的项目中。但是,我在创建 SqlSession 时遇到了问题。
从 CardValidationController(位于控制器包中),我从 CardValidationService(位于 dao 包中)调用方法 getCardNoBy。
调试了一下发现卡在create SqlSession:
SqlSession session = sqlSessionFactory.openSession();
任何解决方案将不胜感激。谢谢
我会做的是尝试一些非常不同的东西,使用 MyBatis-Spring 映射器接口,它允许 MyBatis 创建简单的、线程安全的映射器对象,可以注入到你的代码中。此映射器对象将有效地允许您通过方法访问映射的查询。
一个例子是 here,但基本思想是简单地创建一个镜像 xml 映射器定义的接口,例如...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis3.mappers.StudentMapper">
<resultMap type="Student" id="StudentResult">
<id property="studId" column="stud_id" />
<result property="name" column="name" />
<result property="email" column="email" />
<result property="dob" column="dob" />
</resultMap>
<select id="findAllStudents" resultMap="StudentResult">
SELECT * FROM STUDENTS
</select>
<!-- etc. -->
</mapper>
...可以通过接口映射 com.mybatis3.mappers.StudentMapper
:
public interface StudentMapper {
List<Student> findAllStudents();
// etc.
}
...这将允许您简单地调用 StudentMapper.findAllStudents()
而不是手动调用您的查询。
您可以通过 MyBatis-Spring 处理映射器,参见 here。最简单的方法是扫描它们,然后像处理任何其他 Spring 托管 bean 一样注入它们:
<mybatis:scan base-package="org.mybatis.spring.sample.mapper" />