念桥丶 2015-05-14 09:22 采纳率: 16.7%
浏览 1892

springmvc+mybatis整合

spring-servlet.xml

<beans:bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
       <beans:property name="driverClassName" value="org.postgresql.Driver"/> 
       <beans:property name="url" 
           value="jdbc:postgresql://192.168.20.61:5432/atomdb"/> 
       <beans:property name="username" value="postgre"/> 
       <beans:property name="password" value="postgre"/> 
    </beans:bean> 
    <beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
       <beans:property name="dataSource" ref="myDataSource"/> 
       <beans:property name="configLocation" value="/WEB-INF/db/SqlMapConfig.xml"/> 
    </beans:bean>
    <beans:bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
       <beans:property name="basePackage" value="Mapper"/> 
    </beans:bean> 
    <beans:bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
       <beans:property name="dataSource" ref="myDataSource"/> 
    </beans:bean>


SqlMapConfig.xml

 <?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>

    <mappers>
        <mapper resource="ApiServiceRepoMapper.xml" />
    </mappers>

</configuration>

ApiServiceRepoMapper.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.shangpin.EChars.repo.ComplexQueryRepo">

        <select id="count" resultType="Integer">
            SELECT "count"(*) FROM "public"."search_keyword_statistic_day"
        </select>
        </mapper>

Controller.java

 @Controller
@RequestMapping("/search")
public class Controller {

    @Autowired
    private SearchService searchService ;

    @RequestMapping("/get")
    public void ss(){

        System.out.println(searchService.count());
    }
}

SearchService.java

 @Service
public class SearchService {
    @Autowired
    ComplexQueryRepo complexQueryRepo;

    @Autowired
    public int count(){
        System.out.println("222");
        int a = complexQueryRepo.count();
        return a;
    }
}

ComplexQueryRepo.java

 public interface ComplexQueryRepo{
    public int count();
}

项目能启动,发送请求/search/get后会输出222然后

    int a = complexQueryRepo.count();

这一行报空指针

  • 写回答

3条回答

  • 晶晶爱学习 2015-05-14 09:34
    关注

    先不问你注解扫描是否开启
    其他的代码问题太多了,springmvc用的动态代理,所有你的service要个接口,然后实现接口,然后注入,dao也是同样的
    @Autowired
    public int count(){
    System.out.println("222");
    int a = complexQueryRepo.count();
    return a;
    }
    还有这,@Autowired这个是自动注入,就是将容器里的bean注入,所有这行去了

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型