SpringBoot+Mybaits整合,mapper.xml的参数获取不到
如题,我自己整合了SpringBoot与Mybatis,数据库连接为最简单的jdbc方式(主要想先简单的一个个来,再开始复杂的),我分别想使用3种方式来了解并熟悉Mybaits,第一种为使用@Mapper注解,这里不详细写代码,第二种配合mapper.xml来测试,不是很明白,sex的值为什么取不到。也跟到源代码里面去看了,还不是很明白是怎么回事,希望有高手解答。代码如下:
控制层:
@RestController
public class UserInforController {
@Autowired
public UserInfoService userInfoServiceImpl;
@RequestMapping("/queryUserBySex")
public UserInfo queryUserBySex(String sex){
return userInfoServiceImpl.queryUserBySex(sex);
}
}
Servie层:
@Service
public class UserInfoServiceImpl implements UserInfoService {
@Autowired
public UserInfoDao userInfoDaoImpl;
@Override
public UserInfo queryUserBySex(String sex){
return userInfoDaoImpl.queryUserBySex(sex);
}
}
dao层:
@Repository
public class UserInfoDaoImpl implements UserInfoDao{
@Autowired
private SqlSession sqlsession;
@Override
public UserInfo queryUserBySex(String sex) {
return this.sqlsession.selectOne("user.queryUserBySex",sex);
}
}
userMapper.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="user">
<resultMap type="cn.com.cybertech.SpringBootServer.po.UserInfo" id="UserInfo" >
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="age" column="age"/>
<result property="phone" column="phone"/>
</resultMap>
<select id="queryUserBySex" parameterType="string" resultMap="UserInfo">
SELECT * FROM CT_TEST WEHRE SEX = #{sex,jdbcType=VARCHAR}
</select>
</mapper>
springboot启动类:
/**
* Hello world!
*
*/
@RestController // restful风格
@ComponentScan(basePackages="cn.com.cybertech.SpringBootServer")
@SpringBootApplication
public class App {
public static void main( String[] args ) {
SpringApplication.run(App.class, args);
System.out.println( "Hello World!" );
}
}
application.properties配置文件:
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:luyy
spring.datasource.username=ctframe
spring.datasource.password=cyber
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
mybatis.mapper-locations=classpath*\:mapper/*Mapper.xml
mybatis.type-aliases-package=cn.com.cybertech.SpringBootServer.po.UserInfo
报错内容如下:
### The error may exist in file [D:\workspacesOpenSource\SpringBootServer\target\classes\mapper\UserMapper.xml]
### The error may involve user.queryUserBySex-Inline
### The error occurred while setting parameters
### SQL: SELECT * FROM CT_TEST WEHRE SEX = ?
### Cause: java.sql.SQLException: ORA-00933: SQL 命令未正确结束
; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00933: SQL 命令未正确结束
] with root cause
java.sql.SQLException: ORA-00933: SQL 命令未正确结束