SSM项目集成mybatis出错,哪位大佬帮帮忙

网上说的namespace 和接口名相同我都看了没什么问题

接口

 import com.sztaiji.entity.User;

public interface UserDAO {
    public User findByUsername(String username);
    public void save(User user);
}

实现类


import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

import com.sztaiji.entity.User;
@Repository("userDAO")
public class UserDAOImpl implements UserDAO {
    @Resource(name="sst")
    private SqlSessionTemplate sst;

    public User findByUsername(String username) {


        return sst.selectOne("com.sztaiji.dao.findByUsername", username);
    }

    public void save(User user) {
        sst.insert("com.sztaiji.dao.save", user);
    }

}

映射文件

 <?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
 <mapper namespace="com.sztaiji.dao.UserDAO">
    <insert id="save" parameterType="com.sztaiji.entity.User">
        insert into tb_user(username,pwd,name) values(#{username},#{pwd},#{name})
    </insert>

    <select id=" findByUsername" parameterType="String" resultType="com.sztaiji.entity.User">
        select * from tb_user where username=#{username}
    </select>
 </mapper>

图片说明

8个回答

图片说明

guoao1
guoao1 谢谢!但还报错,尴尬,弄了几天了
大约 2 年之前 回复

1、mapper.xml中没有加入namespace
2、mapper.xml中的方法和接口mapper的方法不对应
3、mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置了mapper文件的包路径的除外
4、mapper.xml文件名和所写的mapper名称不相同。

你看看

guoao1
guoao1 谢谢!这些之前网上找过 试过了
大约 2 年之前 回复

不是不用写dao的实现类啊, 直接写一个dao的接口就行了,然后直接去对应xml的id了么

WO8451401
Beauty_魅影 回复guoao1:换成 select * from tb_user where username=#{_parameter}
大约 2 年之前 回复
guoao1
guoao1 我没用映射器
大约 2 年之前 回复

你的映射文件中,findByUsername前面多了一个空格

guoao1
guoao1 还是不对
大约 2 年之前 回复


select * from tb_user where username=#{username}

第一种是改成这样

guoao1
guoao1 回复孤独不是寂寞:但是参数类型就是String型啊 不是User类型啊
大约 2 年之前 回复
u013300742
孤独不是寂寞 就是改成parameterTye="com.sztaiji.entity.User",去掉resultType,看看行不行
大约 2 年之前 回复
u013300742
孤独不是寂寞 。。。。。又变成这样了
大约 2 年之前 回复
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <!-- 加载mybatis.cfg.xml文件 -->
    <property name="configLocation" value="classpath:mybatis.cfg.xml"></property>
    <!-- 自动扫描需要定义类别名的包,将包内的JAVA类的类名作为类别名 -->
    <property name="typeAliasesPackage" value="com.demo.beans"></property>
    <property name="mapperLocations">
        <list>
            <value>classpath:mybatis/*/*Mapper.xml</value>
        </list>
    </property>
</bean>
这个配了吗?
guoao1
guoao1 配了的
大约 2 年之前 回复

classpath:mybatis/*/*Mapper.xml还有你的路径命名

参数类型要么写全java.lang.String,要么写string小写试试

guoao1
guoao1 翻水水了,还是不行
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问