DBhelper工具类和JDBC接口实现类回顾

12 篇文章 1 订阅
9 篇文章 0 订阅

DBhelper工具类

public class DBhelper {
   public static final String URL = "jdbc:mysql://localhost:3306/bank";
   public static final String USER = "root";
   public static final String PWD = "root";
   public static Connection conn=null;
static {
   try{
       Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager.getConnection(URL, USER, PWD);
   }catch (Exception e){
       e.printStackTrace();
   }
}
   public static Connection getConn() {
           return conn;
   }
}

调用:

DBhelper.getConn(); 
// 会返回一个连接对象,再操作数据库

JDBC实现类调用DBhelper.java

public class LoginDaoImpl implements LoginDao{
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

// 根据传入的name 查询是否存在该用户, 如果存在,就返回一个新用户,不存在,返回null
    @Override
    public User selectUserByName(String name) {
        conn = DBhelper.getConn();
        User user = new User();
        String sql = "select * from user where name = ?";
        try {
            ps=conn.prepareStatement(sql);
            ps.setString(1,name);
            rs = ps.executeQuery();
            if (rs.next()){
                user.setId(rs.getInt(1));
                user.setName(rs.getString(2));
                user.setPwd(rs.getString(3));
                System.out.println(user);
            }else {
                return null;
            }
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        return user;
    }
}

校验前端用户名是否存在的一个 Servlet 类

@WebServlet("/login")
public class LoginServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置请求和响应的编码格式
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");

        // 从前端获取name属性
        String name = req.getParameter("name");
        // System.out.println(name);
        LoginDao login = new LoginDaoImpl();
        User user = login.selectUserByName(name);

        // 向前端传值,数据库查到该用户,写入1,反之写2
        if (user!=null) {
            resp.getWriter().write("1");
        }else {
            resp.getWriter().write("2");
        }
    }
}

实体类 User

// lombok 插件生成getter / setter
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private String pwd;
}

前端 jsp:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>login</title>
    <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
</head>
<body>

<form action="/login" method="post">
    用户名:<input id="name" type="text" name="name"><span id="msg"></span><br>
    密 码: <input type="password" name="pwd"><br>
    <input type="submit" value="注册">
</form>

<script type="text/javascript">
    $(function () {
        $("#name").change(function (){
            // alert("123");
           /* $.ajax({
                type:"get",
                url:"login?name="+$("#name").val(),
                dataType:"text",
                success:function (data){
                if(data===1){
                    $("#msg").html("用户名已存在,请更换").css("color","red");
                }else {
                    $("#msg").html("用户名不存在,可以使用").css("color","green");
                    }
                }
            })*/

            $.post("login","name="+this.value,function (data){
                if (data==="1"){
                    $("#msg").html("unable!").css("color","red");
                }else {
                    $("#msg").html("ok!").css("color","green");
                }
            })
        })

    })
</script>
</body>
</html>

完成效果

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值