当前位置: 首页 > 知识库问答 >
问题:

MyBatis with Spring-配置错误空指针异常

衡建中
2023-03-14

我是一个尝试整合mybatis的新手。最终出现了这个空指针异常。

我的POM

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.1.1</version>
    </dependency>

我的Spring配置

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

<context:component-scan base-package="biz.canisrigel.slapMe" />

<!-- enable autowire -->
<context:annotation-config />

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/slapMe" />
    <property name="username" value="root" />
    <property name="password" value="adminadmin" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="biz.canisrigel.slapMe.bean" />
</bean>

<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="biz.canisrigel.slapMe.mapper" />
</bean>

我的地图绘制者

public interface UserMapper {

UserBean getUser();

}

<mapper namespace="biz.canisrigel.slapMe.mapper.UserMapper">

<select id="getUser" resultType="UserBean">
    Select * from Users where id = 1;
</select>

</mapper>

用户Bean

只是几个变量

我的DAO

@Service
public class UserDao {

@Autowired
private UserMapper userMapper;

public UserBean getUser(int id) {

    if (userMapper == null) {
        System.out.println("Errorrrrrr...................");
        // return new UserBean();
    }
    return userMapper.getUser();
}

}

控制

@Controller
@RequestMapping("/authenticate")
public class LoginController {

@RequestMapping("/index")
public String index() {
    UserDao userDao = new UserDao();
    System.out.println(userDao.getUser(1).getPassword());
    return "Login";
}

}

错误

org.springframework.web.util.NestedServletExcture:请求处理失败;嵌套异常java.lang.NullPointerExctureorg.springframework.web.servlet.FrameworkServlet.process请求(FrameworkServlet.java:932)org.springframework.web.servlet.FrameworkServlet.do获取(FrameworkServlet.java:816)javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

共有1个答案

爱海
2023-03-14

您的UserDao对象需要来自Spring对象存储以及映射器。像您这样在索引方法中实例化UserDao对象,意味着您在调用时映射器是null,因为Spring没有为您设置对象,因此无法自动连接映射器。

您需要使用@Resource注释将您的UserDao对象带到控制器中,如下所示:

 @Controller
 @RequestMapping("/authenticate")
 public class LoginController {

    @Resource
    UserDao userDao;

    @RequestMapping("/index")
    public String index() {
        System.out.println(userDao.getUser(1).getPassword());
        return "Login";
    }

 }
 类似资料:
  • 问题内容: 我正在继续我的上学项目,似乎遇到了另一个错误。所以发生的事情基本上是我收到一个空指针异常,即使代码看起来很好。我相信我的阵列出了点问题,即使经过数小时的搜索,我似乎也找不到该错误。再一次,任何帮助/解决方案将不胜感激。 } 我有一个带有构造函数的学生班,并且有一个说明 但仍然出现错误。我知道要处理的代码很多,因此再次感谢任何帮助。 问题答案: 由于您的代码是当前编写的, 由于您永远不会

  • 我在当前版本的Java8中发现了一个奇怪的行为。在我看来,下面的代码应该可以,但是JVM抛出了一个: 这并不重要,它是什么样的lambda表达式(与相同)或使用了什么泛型类型。也可以用更有意义的表达式来代替。上面的例子很短。这里有一个更丰富多彩的例子: 然而,这些代码段运行良好: 和 或与功能: 我测试了两个Java版本: openjdk版本“1.8.0_66-internal”openjdk运行

  • 因此,我必须创建一个方法,将输入字符串分成名字/中间名/姓氏,计算创建的“学生”的数量,等等,然后我必须创建测试这些方法的类。 这是我测试代码的方式: } 当它为具有2个名称的学生测试toString时,我一直遇到空指针异常,我不知道为什么。

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 在用C进行编码练习时,我必须为指向结构()的指针分配内存,即使该结构可能已经预先为它分配了内存,否则我将得到“赋值到空指针”类型的错误。 我的假设是,如果指针要指向一个预先分配内存的结构,那么分配更多的内存将是冗余的?为了澄清,代码编译和运行都没有错误,只是搞不清楚为什么我需要分配内存来实现预期的行为。 这里有一个链接到一个要点,以了解完整的上下文。谢了!