Приветствую.
Знающие люди, подскажите пожалуйста как работать с базой через mybatis-spring, а то никак не могу допереть. Делаю, как обычно по официальным тьюториалам + гуглю... Почему-то вываливается на строчке 27 в файле addressController.java(см. ниже) по причине: java.lang.NullPointerException web.addressController.doSomeBusinessStuff(addressController.java:27)
данные точно есть в таблице
База Oracle 10gR2 c таблицей TOWN
Name Null? Type -------------- ----------- ---------------------------- ID_TOWN NOT NULL NUMBER(38) NAME NOT NULL VARCHAR2(32) NOTE VARCHAR2(256)
Структура приложения следующая: /WEB-INF/pom.xml
| Код | <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.0.0</version> </dependency>
|
/WEB-INF/dispatcher-servlet.xml
| Код | <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"> <property name="dataSourceName" value="ds"/> <!-- use property-placeholder (e.g.) to fill in the database connection variables --> <property name="URL" value="jdbc:oracle:thin:@<host>:1521:orcl"/> <property name="user" value="test"/> <property name="password" value="test"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="townMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="db.TownMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean>
<bean name="/address.htm" class="nocdb.web.addressController" />
|
TownMapper.java
| Код | package db;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select;
public interface TownMapper { @Select("SELECT name FROM town WHERE id_town = #{townId}") String getTownName(@Param("townId") String townId); }
|
addressController.java
| Код | package web;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import db.TownMapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller;
public class addressController implements Controller { protected final Log logger = LogFactory.getLog(getClass());
private TownMapper townMapper; public void setUserMapper(TownMapper townMapper) { this.townMapper = townMapper; } public String doSomeBusinessStuff(String userId) { return this.townMapper.getTownName(userId); }
@Override public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception { try { logger.info("Address: Enter to page - " + doSomeBusinessStuff("1")); <-- Вываливается на этом методе, не возвращает данные (Null pointer) } catch (Exception e) { logger.info("Address: Error"); } return new ModelAndView("address"); } }
|
Может подскажите в чем может быть дело? Заранее спасибо.
PS: Если еще нужна инфа, пишите, скину. PPS: База точно доступна и данные дергаются другим клиентом...Библиотека оракловая прикреплена к проекту Использую NetBeans 7, Tomcat 7, MyBatis 3, Spring 3
Если я не правильно делаю, может набросаете как надо?
|