关于SSM+oracle的项目中,查询结果ID一直为0,不知道为什么?求大神指点

在使用SSM(Spring、SpringMVC、MyBatis)集成Oracle的项目中,遇到查询结果中用户ID始终显示为0的难题。问题出现在UserMapper.xml的配置上,特别是selectKey元素的使用,以及UserAction中的方法调用。在保存用户信息时,ID未正确生成和赋值,可能与ID生成策略和编码转换有关。

UserMapper.xml配置:

<select id="findAll" resultType="User">
        select id,uname,upass from u_user
    </select>
    
    <insert id="save" parameterType="User" >
          <selectKey  keyProperty="uid" resultType="int" order="BEFORE">
              select nvl(max(id),0)+1 from u_user
          </selectKey>
          insert into u_user(id,uname,upass) values(#{uid},#{uname},#{upass})
      </insert>

UserAction:

@RequestMapping(value="showuser")
    public ModelAndView find(){
        //先new一个ModelAndView对象
        ModelAndView mav=new ModelAndView();
        //以键值队的形式赋值   然后用对象调用方法 
        mav.addObject("user",user.findAll());
        //要跳转的页面
        mav.setViewName("list_user");
        //return出来你new的对象
        return mav;
    }
    
    //增加
    @RequestMapping(value="saveuser")
    public ModelAndView save(User u){
        List<User> users=user.findAll();
        String name =u.getUname();
        int id = u.getUid();
        System.out.println(id);
        try {
            byte[] b=name.getBytes("ISO-8859-1");
            String str=new String(b,"utf-8");
            u.setUname(str);
            user.save(u);    
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return new ModelAndView("redirect:/showuser.do"); 
    }

查询结果显示:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值