如何把jt.execute(sql1)执行的结果赋值给一个变量,然后存到session中 10C
 @RequestMapping(value="/vip",method = RequestMethod.GET) 
      public ModelAndView login1(final HttpSession httpSession) {
        String phone = (String) httpSession.getAttribute("phone");
        String viewname = "";
            viewname = "vip";
            String sql = "select * from user where phone ='"+phone+"' ";
            String sql1 = "select vip from user where phone ='"+phone+"'";
            System.out.println(sql);
            final User user = new User();
            jt.query(sql, new RowCallbackHandler(){
                public void processRow(ResultSet rs) throws SQLException {
                    if (rs.isFirst()) {
                        user.setName(rs.getString(1));
                        user.setPhone(rs.getString(2)); 
                        user.setPassword(rs.getString(3));
                        user.setSex(rs.getString(4));
                        user.setVip(rs.getString(5));
                    }

                }   
            });
            jt.execute(sql1);
            System.out.println(sql1);
            httpSession.setAttribute("phone", phone);
            ModelAndView mv = new ModelAndView(viewname);
            mv.addObject("user", user);
            return mv;
        }

3个回答

Statement接口的execute用于返回多个结果集的情况,不推荐使用。一般用的是executeQuery、executeUpdate。
executeQuery返回一个ResultSet对象用于得到数据库结果;
executeUpdate返回int类型得到影响的行数。

qq_24932993
qq_24932993 回复congyeyan9940: 我把新写的贴出来了,结果有点问题,不知道怎么回事诶
2 年多之前 回复
qq_24932993
qq_24932993 回复congyeyan9940: 还没有诶,一直不知道到底怎么写出了
2 年多之前 回复
congyeyan9940
笨笨的程序员啊 回复qq_24932993: 昨天有点忙 解决了吗
2 年多之前 回复
qq_24932993
qq_24932993 回复congyeyan9940: 我用的mysql诶,spring的xml里面已经把数据库连接的代码写好了,目前只能在这个contorllor里面写诶
2 年多之前 回复
congyeyan9940
笨笨的程序员啊 回复congyeyan9940: 要的话明天上班有时间给你写一个吧
2 年多之前 回复
congyeyan9940
笨笨的程序员啊 回复qq_24932993: 看你是用的springmvc,数据持久层不要写到controller里,可以用比较流行的mybatis;如果你想用原生JDBC的话,做个个JDBC工具类吧,Connection,PreparedStatement,ResultSet 都是要关闭的,一个一个弄太麻烦了。
2 年多之前 回复
qq_24932993
qq_24932993 那我这段代码里面怎么修改才能把sql1查询的出来的vip的值存到session中诶
2 年多之前 回复
congyeyan9940
笨笨的程序员啊 回复w172087242:嗯 对
2 年多之前 回复
w172087242
little_how 如果没有设置连接参数,executeUpdate默认返回的是匹配到的行数,而不是影响行数
2 年多之前 回复
    String sql = "select * from userinfo where id<?";  

   List resultList=jt.execute(sql,new PreparedStatementCallback() {  

        public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {  

            ps.setInt(1, 20);  

            ResultSet rs=ps.executeQuery();  

            Userinfo userinfo = new Userinfo();  

            List list=new ArrayList();  

            while (rs.next()) {  
                userinfo.setId(rs.getInt("id"));  
                userinfo.setUsername(rs.getString("username"));  
                userinfo.setPassword(rs.getString("password"));  
                userinfo.setCrateDate(rs.getDate("createDate"));  
                list.add(userinfo);  
            }  

            return list;  
        }  
    });  

    System.out.println(resultList.size());  
            //TODO 保存在数据到session
 @RequestMapping(value="/vip",method = RequestMethod.GET) 
      public ModelAndView login1(final HttpSession httpSession) {
        String phone = (String) httpSession.getAttribute("phone");
        String viewname = "";
            viewname = "vip";
            String sql = "select * from user where phone ='"+phone+"' ";
            String sql1 = "select vip from user where phone ='"+phone+"'";
            System.out.println(sql);
            final User user = new User();
            jt.query(sql, new RowCallbackHandler(){
                public void processRow(ResultSet rs) throws SQLException {
                    if (rs.isFirst()) {
                        user.setName(rs.getString(1));
                        user.setPhone(rs.getString(2)); 
                        user.setPassword(rs.getString(3));
                        user.setSex(rs.getString(4));
                        user.setVip(rs.getString(5));
                    }
                }   
            });
            final Vip users = new Vip();
            jt.query(sql, new RowCallbackHandler(){
                public void processRow(ResultSet rs1) throws SQLException {
                    if (rs1.isFirst()) {
                        users.setVip(rs1.getString("vip"));
                        String V=rs1.getString("vip");
                        httpSession.setAttribute("vip",V);
                        httpSession.setAttribute("V", rs1.getString("vip"));
                        System.out.println(V);
                    }

                }   
            });
            System.out.println(sql1);
            httpSession.setAttribute("name", user.getName());
            httpSession.setAttribute("sex", user.getSex());
            httpSession.setAttribute("phone", phone);
            ModelAndView mv = new ModelAndView(viewname);
            mv.addObject("user", user);
            mv.addObject("users",users);
            return mv;
        }

我的会员状态:${ users.vip }
<br>
<%=(String)session.getAttribute("V") %>
<%String V =(String)session.getAttribute("V");
if(V =="否") { %>
<a>未开通会员</a>
<% }if(V =="是") { %>
<a>已开通会员</a>
<% } %>
<br></td>

数据库中得到的结果就是“是”,前台也输出的是“是",但就是下面的判断却不显示出来
判断没有进行,但是视图和session 都传出来了,值也都是对的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐