问题描述
applicationContext.xml配置<beanname="ekp_db"class="com.mchange.v2.c3p0.ComboPooledDataSource"><propertyname="driverClass"><value>com.mysql.jdbc.Driver</value></property><propertyname="jdbcUrl"><value>jdbc:mysql://localhost:3306/ekp_rpt?characterEncoding=utf-8</value></property><propertyname="user"><value>root</value></property><propertyname="password"><value>admin</value></property><propertyname="minPoolSize"value="10"/><propertyname="maxPoolSize"value="20"/><propertyname="maxIdleTime"value="3600"/></bean><beanname="jdbcTemelate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"ref="ekp_db"></property></bean><beanname="ekpDAO"class="com.kingsoft.ksc.dc.cube.dao.EpkDAO"><propertyname="jdbcTemplate"ref="jdbcTemelate"></property></bean>
,JAVA代码@RepositorypublicclassEpkDAO{privateJdbcTemplatejdbcTemplate;privatestaticfinalStringFIND_BY_NAME="SELECTid,userid,name,address,phone,fax,email,corporation,contact,ctime,mtime,discardFROMEkpDomainWHEREnameLIKE?";publicList<Map<String,Object>>findCompaniesByName(StringnamePart){if(jdbcTemplate==null)System.out.println("jdbctempleteisnull");//returnjdbcTemplate.queryForList(FIND_BY_NAME,"%"+namePart+"%");returnnull;}publicJdbcTemplategetJdbcTemplate(){returnjdbcTemplate;}publicvoidsetJdbcTemplate(JdbcTemplatejdbcTemplate){this.jdbcTemplate=jdbcTemplate;}}
,service层中,DAO是@AutoWired的,启动不报任何错误,但是运行时就是出现空指针异常,jdbctemplate为null,跪求解
解决方案
解决方案二:
这是springjdbc的东东,和springmvc没关系。<beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><constructor-argref="myDataSource"></constructor-arg></bean>
JdbcTemplate的初始化需要DataSource,你应该这样传给它。
解决方案三:
<beanname="ekpDAO"class="com.kingsoft.ksc.dc.cube.dao.EpkDAO"><propertyname="jdbcTemplate"ref="jdbcTemelate"></property></bean>别用一样的名字,试试
解决方案四:
兄弟,你的jdbctemplate的实例名是jdbcTemelate不是jdbcTemplate---------<beanname="jdbcTemelate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"ref="ekp_db"></property></bean>
解决方案五:
首先,你变量名称不知道是故意写错的还是误写的。<beanname="jdbcTemelate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"ref="ekp_db"></property></bean>是jdbcTemplate不是吗?然后我记得是id="jdbcTemplate"吧?不是name="jdbcTemplate"
解决方案六:
引用3楼sunaer的回复:
兄弟,你的jdbctemplate的实例名是jdbcTemelate不是jdbcTemplate---------<beanname="jdbcTemelate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"ref="ekp_db"></property></bean>
+++
解决方案七:
ref="jdbcTemelate这个明显写错了