重庆幸运农场中奖金额|重庆幸运农场官网
MyException - 我的異常網
當前位置:我的異常網» Java Web開發 » Spring + Mybatis 結合報錯,該如何解決

Spring + Mybatis 結合報錯,該如何解決

www.h0f1.com  網友分享于:2013-06-29  瀏覽:0次
Spring + Mybatis 結合報錯
本帖最后由 clear_shadow 于 2012-12-27 17:54:10 編輯
rt。我在搭建一個struts2+spring+mybatis+mysql的web環境。在搭建好之后,可以使用mybatis訪問數據庫,檢索出數據。但當我使用spring與mybatis結合后,就報錯了。

錯誤發生在我打開session的時候
------------------------------------------------------------------------------
public boolean checkUser(String userName, String password) {
SqlSession sqlSession = sqlSessionFactory.openSession();

try {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
UserExample example = new UserExample();

example.clear();
example.or().andUsernameEqualTo(userName).andPasswordEqualTo(password);
List<User> lst = mapper.selectByExample(example);

return !lst.isEmpty();
} finally {
sqlSession.close();
}
}
------------------------------------------------------------------------------

錯誤信息如下。
------------------------------------------------------------------------------
org.apache.ibatis.exceptions.PersistenceException
### Error opening session.  Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
------------------------------------------------------------------------------

spring的配置文件(applicationContext.xml)
------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc 
     http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<!-- 配置要掃描的包 -->      
    <context:component-scan base-package="com.test" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>

<!-- 定義數據源連接 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test_for_ssi"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="500"/>
<property name="defaultAutoCommit" value="true"/>
</bean>

<!-- 定義全局的事務控制 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- 開啟注解方式聲明事務 -->
<tx:annotation-driven/>

<!-- 定義SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:com/test/xml/*.xml"/>
<property name="typeAliasesPackage" value="com.mybatis.model"/>
</bean>

    <!-- 配置SqlSessionTemplate -->  
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">  
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />  
    </bean>

<!-- 自動掃描mapper,允許自動注入(根據類型匹配),不需要逐個配置mapper -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.test.dao"/>
</bean>

</beans>
------------------------------------------------------------------------------

mybatis的配置文件(mybatis-config.xml)由于使用spring自動注入了,就不需要再配置mybatis了
------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--  <environments default="development"> -->
<!--  <environment id="development"> -->
<!--  <transactionManager type="JDBC"/> -->
<!--  <dataSource type="POOLED"> -->
<!--  <property name="driver" value="com.mysql.jdbc.Driver"/> -->
<!--  <property name="url" value="jdbc:mysql://127.0.0.1:3306/test_for_ssi"/> -->
<!--  <property name="username" value="root"/> -->
<!--  <property name="password" value="root"/> -->
<!--  </dataSource> -->
<!--  </environment> -->
<!--  </environments> -->
<!--  <mappers> -->
<!--  <mapper resource="com/test/xml/UserMapper.xml"/> -->
<!--  </mappers> -->
</configuration>
------------------------------------------------------------------------------




------解決思路----------------------
引用:
引用:給你個借鑒的配置
Java code?123456789101112131415161718192021222324252627282930313233<!-- 定義運維平臺mysql數據源 --><bean id="proxySource" class="org.apache.commons.dbcp.BasicData……

照我那樣配了之后就不用再service里獲取sqlSessionFactory 了,
@Service
public class MongoServiceImpl implements MongoService
{
private static Logger logger = LoggerFactory.getLogger(MongoServiceImpl.class);
private ClientInfoMapper clientMapper;

@Autowired
public MongoServiceImpl(ClientInfoMapper clientMapper)
{
this.clientMapper = clientMapper;
}

直接MongoServiceImpl(ClientInfoMapper clientMapper)在serivce里這樣注入你的mapper接口就可以調用了

文章評論

相關解決方案
  • 暫無相關解決方案
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Web開發人員為什么越來越懶了?
Web開發人員為什么越來越懶了?
程序員的鄙視鏈
程序員的鄙視鏈
團隊中“技術大拿”并非越多越好
團隊中“技術大拿”并非越多越好
10個調試和排錯的小建議
10個調試和排錯的小建議
為啥Android手機總會越用越慢?
為啥Android手機總會越用越慢?
老程序員的下場
老程序員的下場
Java 與 .NET 的平臺發展之爭
Java 與 .NET 的平臺發展之爭
那些性感的讓人尖叫的程序員
那些性感的讓人尖叫的程序員
親愛的項目經理,我恨你
親愛的項目經理,我恨你
程序員最害怕的5件事 你中招了嗎?
程序員最害怕的5件事 你中招了嗎?
一個程序員的時間管理
一個程序員的時間管理
程序員都該閱讀的書
程序員都該閱讀的書
程序員必看的十大電影
程序員必看的十大電影
當下全球最炙手可熱的八位少年創業者
當下全球最炙手可熱的八位少年創業者
看13位CEO、創始人和高管如何提高工作效率
看13位CEO、創始人和高管如何提高工作效率
程序員應該關注的一些事兒
程序員應該關注的一些事兒
如何成為一名黑客
如何成為一名黑客
 程序員的樣子
程序員的樣子
我的丈夫是個程序員
我的丈夫是個程序員
Web開發者需具備的8個好習慣
Web開發者需具備的8個好習慣
程序員的一天:一寸光陰一寸金
程序員的一天:一寸光陰一寸金
每天工作4小時的程序員
每天工作4小時的程序員
我跳槽是因為他們的顯示器更大
我跳槽是因為他們的顯示器更大
那些爭議最大的編程觀點
那些爭議最大的編程觀點
做程序猿的老婆應該注意的一些事情
做程序猿的老婆應該注意的一些事情
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序員周末都喜歡做什么?
程序員周末都喜歡做什么?
初級 vs 高級開發者 哪個性價比更高?
初級 vs 高級開發者 哪個性價比更高?
鮮為人知的編程真相
鮮為人知的編程真相
要嫁就嫁程序猿—錢多話少死的早
要嫁就嫁程序猿—錢多話少死的早
漫畫:程序員的工作
漫畫:程序員的工作
如何區分一個程序員是“老手“還是“新手“?
如何區分一個程序員是“老手“還是“新手“?
60個開發者不容錯過的免費資源庫
60個開發者不容錯過的免費資源庫
什么才是優秀的用戶界面設計
什么才是優秀的用戶界面設計
旅行,寫作,編程
旅行,寫作,編程
十大編程算法助程序員走上高手之路
十大編程算法助程序員走上高手之路
“骯臟的”IT工作排行榜
“骯臟的”IT工作排行榜
“懶”出效率是程序員的美德
“懶”出效率是程序員的美德
我是如何打敗拖延癥的
我是如何打敗拖延癥的
代碼女神橫空出世
代碼女神橫空出世
編程語言是女人
編程語言是女人
中美印日四國程序員比較
中美印日四國程序員比較
總結2014中國互聯網十大段子
總結2014中國互聯網十大段子
聊聊HTTPS和SSL/TLS協議
聊聊HTTPS和SSL/TLS協議
2013年美國開發者薪資調查報告
2013年美國開發者薪資調查報告
不懂技術不要對懂技術的人說這很容易實現
不懂技術不要對懂技術的人說這很容易實現
寫給自己也寫給你 自己到底該何去何從
寫給自己也寫給你 自己到底該何去何從
軟件開發程序錯誤異常ExceptionCopyright © 2009-2015 MyException 版權所有
重庆幸运农场中奖金额 陕西快乐十分钟走势图 赚钱宝已占空间0kb 安币怎么推广赚钱 杭州麻将下载平台 河南快赢481最大遗漏 万人金花棋牌888 四川金7乐怎么购买 重庆时时连线2元网 全天腾讯分分彩免费人工计划 99赚钱App进不去了 投资理财软件靠谱吗 上海快三玩法 最好的理财产品排行榜 时时彩后二 搞化工赚钱吗 浙江飞鱼体彩