Member 9671810 Ответов: 2

Как автоматически увеличить идентификатор пользователя в mysql на java


не удается автоматически увеличить идентификатор в приведенном выше коде

{
           String sql = "insert into artist_reg_ml (id,uname,pwd,email,country) values (?,?,?,?,?)";
           PreparedStatement pst = conn.prepareStatement(sql);
           pst.setString(1, "5");
           pst.setString(2, uname);
           pst.setString(3, pwd);
           pst.setString(4, email);
           pst.setString(5, country);

           int i = pst.executeUpdate();
           String msg = "";
           if (i != 0) {
               //msg = "Record has been inserted";
               //pw.print("<font size='6' color=blue>" + msg + "</font>");
               HttpSession sess = request.getSession();
               sess.setAttribute("uname", request.getParameter("uname"));
               sess.setAttribute("pwd", request.getParameter("cpwd"));
               RequestDispatcher dispatcher = request.getRequestDispatcher("/mypage1.jsp");
               dispatcher.forward(request, response);
               File dir = new File("C:/Users/Naresh/Documents/NetBeansProjects/Registrationform/web/nameoffolder/" + uname);
               dir.mkdir();

           }

Richard MacCutchan

Почему вы сохраняете фиксированную символьную строку в поле id?

Member 9671810

я хочу, чтобы это поле автоматически увеличивалось, я пробовал разные способы. например, выберите max(id) из таблицы; или даже попробуйте поставить нулевое значение. Но она не позволяет мне этого сделать.

2 Ответов

Рейтинг:
5

Member 9671810

попробуйте это ... это работает

{
            PreparedStatement pst1 = conn.prepareStatement("select max(id)+1 from artist_reg_ml");
            ResultSet rs = pst1.executeQuery();
            String user_id ="" ;
            while(rs.next())
            {
                user_id = rs.getString(1);
            }
            String sql = "insert into artist_reg_ml (id,uname,pwd,email,country) values (?,?,?,?,?)";
            PreparedStatement pst = conn.prepareStatement(sql);
            pst.setString(1, user_id.toString());
            pst.setString(2, uname);
            pst.setString(3, pwd);
            pst.setString(4, email);
            pst.setString(5, country);
            int i = pst.executeUpdate();
            
            String msg = "";
            if (i != 0) {
           
                HttpSession sess = request.getSession();
                sess.setAttribute("uname", request.getParameter("uname"));
                sess.setAttribute("pwd", request.getParameter("cpwd"));
                File dir = new File("C:/Users/Naresh/Documents/NetBeansProjects/Registrationform/web/nameoffolder/" + uname);
                dir.mkdir();
                RequestDispatcher dispatcher = request.getRequestDispatcher("/mypage1.jsp");
                dispatcher.forward(request, response);
             

            } 


Member 14225850

Спасибо.....Это сработало для ... очень-очень тхнаков

Рейтинг:
2

Member 9671810

спасибо, сэр, но я сослался на это :) но мне это не помогло :/

Richard MacCutchan

Что вы имеете в виду, это не помогло вам; это объясняет, что вам нужно сделать.

Member 9671810

да, это так. я попробовал это, но не могу сохранить увеличенное значение.

Richard MacCutchan

Это нам ни о чем не говорит. Пожалуйста, отредактируйте свой вопрос и покажите точно, что вы делаете, а также объясните, какие ошибки или другие проблемы у вас есть.

Member 9671810

если я использую этот pst.setString(1, null); то это дает мне ошибку "столбец 'id' не может быть null" не может быть вставлен в таблицу. я использую эту причину, когда запрос insert запускается, поле id будет хранить увеличенное значение.

Richard MacCutchan

Вы не должны пытаться установить поле id. Это столбец автоматического увеличения, управляемый компонентом database engine.