我正在尝试将 sql 语句添加到 java spring 中的映射器中,但是当我尝试时出现错误
I'm trying to add sql statements into mapper in java spring but gets an error when I try to
一开始以为是controller的问题,试着加上那些statements的ID,还是报错。有问题的代码在代码的中间。与上面的工作正常。
我不知道如何处理这个东西 :( 现在已经苦苦挣扎了几个小时。
任何帮助将非常感激。
<?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="egovframework.example.sample.service.impl.SampleMapper">
<resultMap id="sample" type="egovframework.example.sample.service.sampleVO">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="useYn" column="use_yn"/>
<result property="regUser" column="reg_user"/>
<result property="regDate" column="regdate"/>
<result property="hit" column="hit"/>
<result property="orifile" column="orifile"/>
<result property="servfile" column="servfile"/>
<result property="email" column="email"/>
<result property="step" column="step"/>
<result property="depth" column="depth"/>
<result property="ref" column="ref"/>
</resultMap>
<insert id="insertSample" parameterType="sampleVO">
<!-- this is inserting without files -->
INSERT INTO SAMPLE
( ID
, NAME
, DESCRIPTION
, EMAIL
, REG_USER
, PASS
, IP
, REF)
VALUES ( #{id}
, #{name}
, #{description}
, #{email}
, #{regUser}
, #{pass}
, #{ip}
, #{id})
</insert>
<update id="hit" parameterType="sampleVO">
update sample set hit = hit + 1 where id = #{id}
</update>
<update id="updateSample" parameterType="sampleVO">
UPDATE SAMPLE
SET
<!-- ID=#{id} -->
<!-- , -->
NAME=#{name}
, DESCRIPTION=#{description}
, USE_YN=#{useYn}
WHERE ID=#{id}
</update>
<delete id="deleteSample" parameterType="sampleVO">
DELETE FROM SAMPLE
WHERE ID=#{id}
</delete>
<select id="selectSample" resultMap="sample">
SELECT
ID, NAME, DESCRIPTION, USE_YN, REG_USER, email
FROM SAMPLE
WHERE ID=#{id}
</select>
<!-- <select id="selectSampleList" parameterType="searchVO" -->
<select id="selectSampleList" parameterType="sampleVO"
resultType="egovMap">
select RNUM, ID, NAME, DESCRIPTION, USE_YN, REG_USER, REGDATE, HIT, IP,
REF, STEP, DEPTH FROM (SELECT A.*, ROWNUM RNUM FROM(SELECT * FROM
SAMPLE ORDER BY REF DESC, STEP ASC)A)
<![CDATA[
WHERE RNUM >= (#{firstIndex}+1) AND RNUM <= #{lastIndex}
]]>
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND ID LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND NAME LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
<!-- i still dont understand why i have to put in +1.... >:( -->
</select>
<select id="selectSampleListTotCnt" parameterType="searchVO" resultType="int">
SELECT COUNT(*) totcnt
FROM SAMPLE
WHERE 1=1
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND ID LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND NAME LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
</select>
<!--
EVERYTHING WORKS FINE UNTIL I ADD SCRIPTS BELOW.
-->
<select id="getReply" parameterType="sampleVO" resultType="sample">
<!-- first step: getting data you need to make reply from article ur gonna reply. -->
SELECT ID, REF, STEP, DEPTH FROM SAMPLE WHERE ID = #{id}
</select>
<update id="stepping" parameterType="sampleVO">
UPDATE SAMPLE(STEP) VALUES STEP = STEP + 1
<![CDATA[
WHERE STEP >= #{step} AND REF = #{ref}
]]>
</update>
<insert id="addReply" parameterType="sampleVO">
<!-- and insert rply thingy -->
INSERT INTO
BOARD(ID, NAME, DESCRIPTION, PASS, REG_USER, REF, IP, EMAIL, STEP, DEPTH)
VALUES(GOVSEQ.NEXTVAL, #{name}, #{description}, #{pass}, #{regUser},
#{ref}, #{ip},#{email}, #{step}, #{depth})
</insert>
</mapper>
...AND THE ERROR:
05, 2017 10:58:08 오전 org.apache.catalina.core.StandardContext listenerStart
Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleMapper' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\example\sample\service\impl\SampleMapper.class]: Cannot resolve reference to bean 'sqlSession' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:307)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:633)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5003)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleMapper' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\example\sample\service\impl\SampleMapper.class]: Cannot resolve reference to bean 'sqlSession' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:334)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1417)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1158)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:445)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:419)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:547)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:155)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:304)
... 22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
... 37 more
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:466)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:340)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
... 44 more
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:92)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:464)
... 47 more
Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:103)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:264)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:251)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:243)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116)
... 49 more
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:117)
at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:130)
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:101)
... 53 more
Caused by: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:190)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
at org.apache.ibatis.io.Resources.classForName(Resources.java:256)
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:113)
... 55 more
您已经在映射器顶部用 id = "sample"
声明了 resultMap
。在您的 select 语句中,您使用 resultType = "sample"
。所以像这样改变你的 select 语句
<select id="getReply" parameterType="sampleVO" resultMap="sample">
或者,如果您想使用 resultType
而不是 resultMap
,那么您需要确保已经创建了一个名为 sample
的 class。
1.最重要的是,检查你的错误日志。
TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'.
Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
2。为 sampleVO 添加类型别名标签 class.
<mapper namespace="egovframework.example.sample.service.impl.SampleMapper">
<typeAlias alias="sampleVO" type="egovframework.example.sample.service.sampleVO" />
...
</mapper>
此别名用于以下属性。
parameterType="sampleVO"
3。检查 "sampleVO.java".
的路径
没问题?接下来..
4.修改以下代码。输入 -> class
<resultMap id="sample" type="egovframework.example.sample.service.sampleVO">
到
<resultMap id="sample" class="egovframework.example.sample.service.sampleVO">
一开始以为是controller的问题,试着加上那些statements的ID,还是报错。有问题的代码在代码的中间。与上面的工作正常。
我不知道如何处理这个东西 :( 现在已经苦苦挣扎了几个小时。 任何帮助将非常感激。
<?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="egovframework.example.sample.service.impl.SampleMapper">
<resultMap id="sample" type="egovframework.example.sample.service.sampleVO">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="useYn" column="use_yn"/>
<result property="regUser" column="reg_user"/>
<result property="regDate" column="regdate"/>
<result property="hit" column="hit"/>
<result property="orifile" column="orifile"/>
<result property="servfile" column="servfile"/>
<result property="email" column="email"/>
<result property="step" column="step"/>
<result property="depth" column="depth"/>
<result property="ref" column="ref"/>
</resultMap>
<insert id="insertSample" parameterType="sampleVO">
<!-- this is inserting without files -->
INSERT INTO SAMPLE
( ID
, NAME
, DESCRIPTION
, EMAIL
, REG_USER
, PASS
, IP
, REF)
VALUES ( #{id}
, #{name}
, #{description}
, #{email}
, #{regUser}
, #{pass}
, #{ip}
, #{id})
</insert>
<update id="hit" parameterType="sampleVO">
update sample set hit = hit + 1 where id = #{id}
</update>
<update id="updateSample" parameterType="sampleVO">
UPDATE SAMPLE
SET
<!-- ID=#{id} -->
<!-- , -->
NAME=#{name}
, DESCRIPTION=#{description}
, USE_YN=#{useYn}
WHERE ID=#{id}
</update>
<delete id="deleteSample" parameterType="sampleVO">
DELETE FROM SAMPLE
WHERE ID=#{id}
</delete>
<select id="selectSample" resultMap="sample">
SELECT
ID, NAME, DESCRIPTION, USE_YN, REG_USER, email
FROM SAMPLE
WHERE ID=#{id}
</select>
<!-- <select id="selectSampleList" parameterType="searchVO" -->
<select id="selectSampleList" parameterType="sampleVO"
resultType="egovMap">
select RNUM, ID, NAME, DESCRIPTION, USE_YN, REG_USER, REGDATE, HIT, IP,
REF, STEP, DEPTH FROM (SELECT A.*, ROWNUM RNUM FROM(SELECT * FROM
SAMPLE ORDER BY REF DESC, STEP ASC)A)
<![CDATA[
WHERE RNUM >= (#{firstIndex}+1) AND RNUM <= #{lastIndex}
]]>
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND ID LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND NAME LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
<!-- i still dont understand why i have to put in +1.... >:( -->
</select>
<select id="selectSampleListTotCnt" parameterType="searchVO" resultType="int">
SELECT COUNT(*) totcnt
FROM SAMPLE
WHERE 1=1
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND ID LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND NAME LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
</select>
<!--
EVERYTHING WORKS FINE UNTIL I ADD SCRIPTS BELOW.
-->
<select id="getReply" parameterType="sampleVO" resultType="sample">
<!-- first step: getting data you need to make reply from article ur gonna reply. -->
SELECT ID, REF, STEP, DEPTH FROM SAMPLE WHERE ID = #{id}
</select>
<update id="stepping" parameterType="sampleVO">
UPDATE SAMPLE(STEP) VALUES STEP = STEP + 1
<![CDATA[
WHERE STEP >= #{step} AND REF = #{ref}
]]>
</update>
<insert id="addReply" parameterType="sampleVO">
<!-- and insert rply thingy -->
INSERT INTO
BOARD(ID, NAME, DESCRIPTION, PASS, REG_USER, REF, IP, EMAIL, STEP, DEPTH)
VALUES(GOVSEQ.NEXTVAL, #{name}, #{description}, #{pass}, #{regUser},
#{ref}, #{ip},#{email}, #{step}, #{depth})
</insert>
</mapper>
...AND THE ERROR:
05, 2017 10:58:08 오전 org.apache.catalina.core.StandardContext listenerStart
Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleMapper' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\example\sample\service\impl\SampleMapper.class]: Cannot resolve reference to bean 'sqlSession' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:307)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:633)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5003)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleMapper' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\example\sample\service\impl\SampleMapper.class]: Cannot resolve reference to bean 'sqlSession' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:334)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1417)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1158)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:445)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:419)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:547)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:155)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:304)
... 22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
... 37 more
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\eGovFrameDev-3.2.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\board\WEB-INF\classes\egovframework\sqlmap\example\mappers\EgovSample_Sample_SQL.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:466)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:340)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
... 44 more
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:92)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:464)
... 47 more
Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:103)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:264)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:251)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:243)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116)
... 49 more
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'. Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:117)
at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:130)
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:101)
... 53 more
Caused by: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:190)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
at org.apache.ibatis.io.Resources.classForName(Resources.java:256)
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:113)
... 55 more
您已经在映射器顶部用 id = "sample"
声明了 resultMap
。在您的 select 语句中,您使用 resultType = "sample"
。所以像这样改变你的 select 语句
<select id="getReply" parameterType="sampleVO" resultMap="sample">
或者,如果您想使用 resultType
而不是 resultMap
,那么您需要确保已经创建了一个名为 sample
的 class。
1.最重要的是,检查你的错误日志。
TypeException: Could not resolve type alias 'egovframework.example.sample.service.sampleVO'.
Cause: java.lang.ClassNotFoundException: Cannot find class: egovframework.example.sample.service.sampleVO
2。为 sampleVO 添加类型别名标签 class.
<mapper namespace="egovframework.example.sample.service.impl.SampleMapper">
<typeAlias alias="sampleVO" type="egovframework.example.sample.service.sampleVO" />
...
</mapper>
此别名用于以下属性。
parameterType="sampleVO"
3。检查 "sampleVO.java".
的路径没问题?接下来..
4.修改以下代码。输入 -> class
<resultMap id="sample" type="egovframework.example.sample.service.sampleVO">
到
<resultMap id="sample" class="egovframework.example.sample.service.sampleVO">