비동기 인증 이름 바 꾸 기,사용자 이름 존재 여부

여기 서 저의 개인 블 로 그 를 추천 해 드 리 겠 습 니 다.
csdn:레이 위안 csdn 블 로그
개인 블 로그:레이 위안 의 개인 블 로그
간 서:뇌 원 의 간 서
비동기 인증 이름 바 꾸 기,사용자 이름 존재 여부
우선 데이터베이스 디자인 입 니 다.여기 서 저 는 간단 한 예제 만 하 겠 습 니 다.
1.sql 문 구 는 다음 과 같다.
CREATE TABLE `      `.`user` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(45) NOT NULL,
  `password` VARCHAR(45) NOT NULL,
  `create_date` VARCHAR(45),
  PRIMARY KEY (`id`));

2.표 구 조 는 다음 그림 과 같다.
그리고 저희 dao 층 코드 를 만 드 는 거 예요.
1.jdbc 모드 코드 는 다음 과 같 습 니 다.
package test;
import java.sql.*;
//          User 
public class UserDao {
    // JDBC         URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/      ";
    //           ,         
    static final String USER = "your_username";
    static final String PASS = "your_password";
    //          
    public User verifyUser(String username){
        Connection conn = null;
        Statement stmt = null;
        User user = null;
        try{
            user = new User();
            //    JDBC   
            Class.forName("com.mysql.jdbc.Driver");
            //     
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            //     
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT * FROM user where username = '"+ username +"'";
            ResultSet rs = stmt.executeQuery(sql);
            //         
            while(rs.next()){
                //       
                int id  = rs.getInt("id");
                String username1 = rs.getString("username");
                String password = rs.getString("password");
                String createDate = rs.getString("create_date");
                user.setId(id);
                user.setUsername(username1);
                user.setPassword(password);
                user.setCreateDate(createDate);
            }
            //      
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            //    JDBC   
            se.printStackTrace();
        }catch(Exception e){
            //    Class.forName   
            e.printStackTrace();
        }finally{
            //     
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }//      
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        return user;
    }
}

2.mybatis 모드 는 다음 과 같 습 니 다:
// dao     
package dao;
import User;
import java.util.List;
public interface UserDao {
    //       
    User verifyUser(String username);
}



<mapper namespace="UserDao" >
  
  <select id="verifyUser" resultType="User">
      SELECT * FROM user where username = #{username};
  select>
mapper>

3.hibenate 모드 는 다음 과 같 습 니 다:
// dao   
package dao;
import User;
import java.util.List;
public interface UserDao {
    //    User    
    User verifyUser(String username)}

// dao    
package dao.impl;

import UserDao;
import User;
import org.apache.struts2.ServletActionContext;
import org.hibernate.Query;
import org.hibernate.ScrollableResults;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;

@Repository
public class UserDaoImpl implements UserDao {

    @Autowired
    private SessionFactory sessionFactory;
    
    //              
    @Override
    @Transactional
    public User verifyUser(String username) {
        return (User) sessionFactory.getCurrentSession().createQuery("from User where username='" + username +"'").uniqueResult();
    }

}


다음은 저희 서 비 스 를 작성 하 겠 습 니 다.
// UserService  
package service;

import User;

public interface UserService {
    //     ID    
    String verifyUser(String username);
}
// UserServiceImpl   
package service.impl;

import User;
import service.UserService;

@Service
public class UserServiceImpl implements UserService {
    //    userDao,    jdbc         UserDao       
    @Autowired
    private UserDao userDao;
    
    //               
    public String verifyUser(String username){
        User user = userDao.verifyUser(username);
        //                     ,        SUCCESS,    ERROR     
        if(user == null){
            return "SUCCESS";
        }else{
            return "ERROR";
        }
    }
}

다음은 저희 컨트롤 러 층 컨트롤 러 입 니 다.
package controller;

import User;
import org.springframework.beans.factory.annotation.Autowired;
import service.UserService;
@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    //    userService
    private UserService userService;
   
    @ResponseBody
    @RequestMapping(value = "/verifyUser", method = RequestMethod.GET)
    public String verifyUser(@RequestParam("username") String username){
        return userService.verifyUser(username);
    }
}

마지막 으로 우리 의 중요 한 장면 입 니 다.우리 의 전단 코드 와 jquery 를 통 해 ajax 비동기 검증 을 실현 합 니 다.
1.jquery 내 다른 블 로 그 를 어떻게 가 져 오 는 지
2.html 작성

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>    title>
    <script src="http://code.jquery.com/jquery-1.4.1.min.js">script>
head>
<body>
<input type="text" name="username" id="username" onkeyup="verifyUser()"/>
<input type="text" name="password" id="password"/>
<script>
    function verifyUser() {
        $.ajax({
            type: "get",
            url:"/user/verifyUser",
            data:{
                username:$("#username").val()
            },
            success(data){
                if (data=="SUCCESS"){
                    alert("       ,   !!");
                } else {
                    //         ,   if      
                    alert("");
                }
            },
            error(){
                alert("ajax    ,   url type    ");
            }
        });
    }
script>
body>
html>

종결 어
이로써 저희 의 검증 은 완 성 된 셈 입 니 다.여러분 께 서 또 질문 이 있 으 시 면 댓 글 이나 댓 글로 알려 주시 면 최선 을 다 해 답변 해 드 리 겠 습 니 다.감사합니다.

좋은 웹페이지 즐겨찾기