JDBC的登录操作和注册用户操作

MySQL部分

一般来说,用户的信息数据都储存在数据库中

#创建数据库
create database mydb;
 
 
#创建表
create table t_user
(
	uid int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	phone varchar(11),
	address varchar(50)
);
 
#插入数据
insert into t_user(username,password,phone,address) values('张三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小美','123','18565234759','信阳');
 
 
 
create table t_goods
(
	gid int primary key auto_increment,
	gname varchar(20),
	price double,
	mark varchar(100)
);
 
insert into t_goods(gname,price,mark) values('泡面',4.5,'够香够辣就是这个味!');
insert into t_goods(gname,price,mark) values('火腿',8.5,'肉质细腻Q弹!');
insert into t_goods(gname,price,mark) values('雪碧',3.5,'清爽冰凉随心爽!');

Java部分

在idea中创建有关类

 web中写jsp页面,index.jsp是首页布局

<html>
<head>
    <title>这是JavaWeb项目</title>
</head>
<body>
<h2>开始学习JavaWeb吧!</h2>
<a href="login.jsp">登录</a>
<a href="zhuce.jsp">注册</a>
</body>
</html>

 登陆页面

<html>
<head>
    <title>登录</title>
</head>
<body>
<h2>登录</h2>
<form action="login" method="post">
    账号:<input type="text" name="username" value=""/><br/>
    密码:<input type="password" name="password" value=""/><br/>
    <input type="submit" value="登录">&nbsp;&nbsp;&nbsp;
    <a href="zhuce.jsp">没有账号?请注册</a>
</form>
</body>
</html>

注册页面 

<html>
<head>
    <title>注册</title>
</head>
<body>
<form action="zhuce" method="post">
    账号:<input type="text" name="username" value=""><br>
    密码:<input type="password" name="password" value=""><br>
    电话:<input type="text" name="phone"><br>
    地址:<input type="text" name="address">
    <input type="submit" value="注册">
    <a href="login.jsp">已有帐号?请登录</a>
</form>
</body>
</html>

登陆正确时跳转到zhuye.jsp主页页面

<html>
<head>
    <title>登录</title>
</head>
<body>
<h2>登陆成功!</h2>
</body>
</html>

在登陆页面,密码或用户名输入错误时跳转到error.jsp再返回login.jsp登陆页面

<html>
<head>
    <title>错误页</title>
</head>
<body>
<h2>出错啦!</h2>
<a href="login.jsp">返回登陆</a>

</body>
</html>

  用户实体类代码如下:

package com.shi.bean;

public class User {
    private int uid;
    private String username;
    private String password;
    private String phone;
    private String address;

    public int getUid() {
        return uid;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getPhone() {
        return phone;
    }

    public String getAddress() {
        return address;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

工具类JDBCUtil

package com.shi.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBCUtil {
    private static String driver="com.mysql.jdbc.Driver";
    private static String url="jdbc:mysql://localhost:3306/mydb";
    private static String user="root";
    private static String password="root";

    private static Connection connection=null;
    public static Connection getCon(){
        try {
            Class.forName(driver);
            connection= DriverManager.getConnection(url,user,password);
        }catch (Exception e){
            e.printStackTrace();
        }
        return connection;
    }
    public static void close(ResultSet rs, PreparedStatement pstm,Connection con){
        try {
            if (rs!=null){
                rs.close();
            }
            if (pstm!=null){
                pstm.close();
            }
            if (connection!=null){
                connection.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }

    }
    public static void zhuce( PreparedStatement pstm,Connection con){
        try {

            if (pstm!=null){
                pstm.close();
            }
            if (connection!=null){
                connection.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

用户接口类

package com.shi.dao;

import com.shi.bean.User;


public interface UserDao {

    User login(String username,String password);

    int zhuce(User user);
}

 功能逻辑类UserDaoImpl.jsp

package com.shi.dao.impl;

import com.shi.bean.User;
import com.shi.dao.UserDao;
import com.shi.util.JDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class UserDaoImpl implements UserDao {
    private Connection con=null; //数据库连接对象
    private PreparedStatement pstm=null; //预处理对象
    private ResultSet rs=null; //结果集对象
    private int row=0; //增删改受影响的行数

    public User login(String username,String password){
        User login=null;
        try {
            con= JDBCUtil.getCon();
            String sql="select * from t_user where username=? and password=?";
            pstm= con.prepareStatement(sql);
            pstm.setObject(1,username);
            pstm.setObject(2,password);
            rs= pstm.executeQuery();
            if (rs.next()){
                login=new User();
                int uid=rs.getInt("uid");
                login.setUid(uid);
                login.setUsername("username");
                login.setPassword("password");
                login.setPhone("phone");
                login.setAddress("address");
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCUtil.close(rs,pstm,con);
        }

        return login;
    }
    public int zhuce(User user){
        try {
            //1:获取数据库连接
            con=JDBCUtil.getCon();
            //2.定义sql语句
            String sql="insert into t_user(username,password,phone,address)values(?,?,?,?)";
            pstm = con.prepareStatement(sql);
            pstm.setObject(1, user.getUsername());
            pstm.setObject(2, user.getPassword());
            pstm.setObject(3, user.getPhone());
            pstm.setObject(4, user.getAddress());
            row= pstm.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCUtil.zhuce(pstm,con);
        }

        return  row;
    }
}

逻辑代码

Login逻辑代码

package com.shi.servlet;

import com.shi.bean.User;
import com.shi.dao.impl.UserDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/login")
public class Login extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1:设置请求和响应的编码格式,以及响应代码的格式
        req.setCharacterEncoding("utf-8");//设置请求的编码格式为中文
        resp.setCharacterEncoding("utf-8");//设置响应代码的格式
        resp.setContentType("text/html;charset=UTF-8");   //以什么样的格式(文本/网页)响应
        //2:获取请求的参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        UserDaoImpl userDao=new UserDaoImpl();
        User login=userDao.login(username,password);


        if(login!=null){
            //登陆成功,跳转到主页
            resp.sendRedirect("zhuye.jsp");//指定跳转的页面
        }else {
            //登陆失败,跳转到错误页
            resp.sendRedirect("error.jsp");
        }
    }
}

Zhuce逻辑代码

package com.shi.servlet;

import com.shi.bean.User;
import com.shi.dao.UserDao;
import com.shi.dao.impl.UserDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


//设置当前类用来处理/register的请求
@WebServlet("/zhuce")
public class Zhuce extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //1.设置编码
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=UTF-8");
        //2.获取请求参数
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        String phone=req.getParameter("phone");
        String address=req.getParameter("address");
        //封装:把上面所有的变量装载到User对象中
        User user=new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setPhone(phone);
        user.setAddress(address);


        //3:执行业务处理---jdbc的操作
        UserDao userDao=new UserDaoImpl();
        int row=userDao.zhuce(user);

        if(row>0){

            resp.sendRedirect("login.jsp");//指定跳转的页面
        }else {

            resp.sendRedirect("error.jsp");
        }


    }
}

注册后填入要注册信息注册成功

  可以查看数据库中的表

  这时登录和注册页面就成功啦!

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值