正在回答
5回答
1、如下图所示,建议你将selfDao改为SelfDao,要与接口名相同。

2、如果同学其他代码是粘贴老师的源码,后面可以加上.resultMap来引用StaffDao中的配置,祝学习 愉快~

慕标3951566
2018-11-20 08:45:04
package com.mango.oa.service.impl;
import com.mango.oa.dao.SelfDao;
import com.mango.oa.dao.StaffDao;
import com.mango.oa.entity.Staff;
import com.mango.oa.service.SelfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("selfService")
public class SelfServiceImpl implements SelfService {
@Autowired
private SelfDao selfDao;
@Autowired
private StaffDao staffDao;
public Staff login(String account, String password) {
Staff staff = selfDao.selectByAccount(account);
if(staff == null) return null;
if(staff.getPassword().equals(password)) return staff;
return null;
}
public void changePassword(Integer id, String password) {
Staff staff = staffDao.selectById(id);
staff.setPassword(password);
staffDao.update(staff);
}
}
chrismorgen
2018-11-19 16:30:52
如下图所示,建议你将.resultMap去掉试试,祝学习愉快~

慕标3951566
2018-11-19 13:14:40


selfDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mango.oa.dao.SelfDao">
<select id="selectByAccount" parameterType="String" resultMap="com.mango.oa.dao.StaffDao.resultMap">
select * from staff where account = #{account}
</select>
</mapper>staffDao.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mango.oa.dao.StaffDao">
<resultMap id="resultMap" type="Staff">
<id property="id" column="id" javaType="Integer"/>
<result property="account" column="account" javaType="String"/>
<result property="password" column="password" javaType="String"/>
<result property="status" column="status" javaType="String"/>
<result property="did" column="did" javaType="Integer"/>
<result property="name" column="name" javaType="String"/>
<result property="sex" column="sex" javaType="String"/>
<result property="idNumber" column="id_number" javaType="String"/>
<result property="workTime" column="work_time" javaType="java.util.Date"/>
<result property="leaveTime" column="leave_time" javaType="java.util.Date"/>
<result property="bornDate" column="born_date" javaType="java.util.Date"/>
<result property="info" column="info" javaType="String"/>
<association property="department" column="did" javaType="Department" select="com.mango.oa.dao.DepartmentDao.selectById" />
</resultMap>
<insert id="insert" parameterType="Staff" useGeneratedKeys="true">
insert into staff(account,password,status,did,name,sex,id_number,work_time,leave_time,born_date,info)
values(#{account},#{password},#{status},#{did},#{name},#{sex},#{idNumber},#{workTime},#{leaveTime},#{bornDate},#{info})
</insert>
<delete id="delete" parameterType="Integer">
delete from staff where id=#{id}
</delete>
<update id="update" parameterType="Staff">
update staff set account=#{account},password=#{password},status=#{status},
did=#{did},name=#{name},sex=#{sex},id_number=#{idNumber},
work_time=#{workTime},leave_time=#{leaveTime},born_date=#{bornDate},info=#{info} where id=#{id}
</update>
<select id="selectById" parameterType="Integer" resultMap="resultMap">
select * from staff where id=#{id}
</select>
<select id="selectAll" resultMap="resultMap">
select * from staff
</select>
</mapper>
chrismorgen
2018-11-19 11:04:38
该错误是绑定错误,建议你检查xml文件中配置的包名与你项目中的包名是否一致?如果还有疑问,可以将你的目录结构和你的xml配置文件粘贴一下,祝学习愉快~

SSM主流框架入门与综合项目实战2018版
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星