mysql练习总结

    技术2022-05-19  32

     

        /**

         * 玩家注册

         * @param user

         * @return  -1 玩家已存在 -2插入失败 1 成功  其他则为刚注册的玩家ID

         */

        public int registerUser(BookUser user) {

           Connection conn = null;

           PreparedStatement pstmt = null;

           Statement stmt = null;

           ResultSet rs = null;

          

           try {

               conn = DBHelper.getConnection();

              

               //注册之前判断用户是否已经存在

               String sqlCheck = "select count(*) from bookuser where userName = '"+ user.getUserName() +"';";        //这里要注意sqlCheck语句要加上‘’号,否则语法错误。

               stmt = conn.createStatement();

               rs = stmt.executeQuery(sqlCheck);

               rs.next();

               int hasNum = rs.getInt(1);

               if(hasNum != 0)

                  return -1;

              

              

               String sql = "insert into bookuser(userName, userPwd, nickName," +

               "email) values (?, ?, ?, ?)";

               pstmt = conn.prepareStatement(sql);

               pstmt.setString(1, user.getUserName());

               pstmt.setString(2, user.getPassWord());

               pstmt.setString(3, user.getNickName());

               pstmt.setString(4, user.getEmail());

              

               int temp = pstmt.executeUpdate();

               if(temp != 1)

                  return -2;

               pstmt.close();

              

              

               stmt = conn.createStatement();

               //获取刚插入的identity       //获得IDENTITY

               rs = stmt.executeQuery("select @@IDENTITY");

               rs.next();

               return rs.getInt(1);

           } catch (SQLException e) {

               e.printStackTrace();

           }finally{

               DBHelper.close(conn, stmt, rs);

           }

           return 0;

        }

     

    还有不很清楚的就是这样一个注册功能总共连接查询数据库了3次,性能上会不会有影响,在sqlserver中可以使用存储过程,mysql中不清楚怎么写比较好》?


    最新回复(0)