JDBC——用JDBC连接MySQL数据库实现简单登录注册程序(java web)

1. 工程文件

在这里插入图片描述
工作软件我用的是eclipse和MYSQL 8.0
连接数据库用的驱动JDBC.jar一定要有,怎么用网上有教程

2.数据库样式

在这里插入图片描述

3.DBUtil.java

package com.imooc.jdbc;
 
import java.sql.Connection;
import java.sql.DriverManager;
 //连接数据库
public class DBUtil {
 
	private static final String URI = "jdbc:mysql://localhost:3306/ tbl_user_info?"
			+ "user=root&password=123456&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";
	
	private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
	
	public static Connection connectDB() throws Exception {
		//1、加载数据库驱动
		Class.forName(DRIVER);
		//2、获取数据库连接
		Connection conn = DriverManager.getConnection(URI);
		
		return conn;
	}
	
}

4.UserDao.java

package com.imooc.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.imooc.jdbc.DBUtil;
//工具类
public class UserDao {
	public boolean queryByParams(List<Map<String, Object>> params) throws Exception {//查询
		Connection conn = DBUtil.connectDB();
		StringBuilder sql = new StringBuilder("SELECT * FROM tb_user WHERE 1=1");
		
		for(Map<String, Object> param : params) {
			sql.append(" and ");
			sql.append(" " +param.get("col")+ " ");
			sql.append(" " + param.get("rel") + " ");
			sql.append(" " +  "'"+param.get("value") + "'"+ " ");
		}
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery(sql.toString());
		if(rs.next()) {
			return true;
		}
		else{
			return false;
		}
	}
	public boolean addUser(UserVO user) throws Exception {//增加
		Connection conn = DBUtil.connectDB();
		String sql = "INSERT INTO tb_user(username,email,password,sex,address) "
				+ " VALUES(?,?,?,?,?)";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, user.getUsername());
		pstmt.setString(2, user.getEmail());
		pstmt.setString(3, user.getPassword());
		pstmt.setString(4, user.getSex());
		pstmt.setString(5, user.getAddress());
		pstmt.execute();
		return true;
	}

	
	
}

5.Login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="utf-8">
        <title>登录页面</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="">
        <meta name="author" content="">
        <script src= "js/angular.min.js"></script>
        <!-- CSS -->
        <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet" href="css/style.css">

    </head>

    <body>
        <div class="header">
            <div class="container">  <!-- container 是bootstrap自带响应式样式 页面效果类似于 table-->
                <div class="row"> <!-- row 是bootstrap自带响应式样式 页面效果类似于 tr-->
                    <div class="login logo span4">
                        <h1><a href="Register.jsp">去注册<span class="red">.</span></a></h1>
                    </div>
                    <div class="links span8">
                        <a class="home" href="html.jsp" data-placement="left" data-original-title="主页"></a>
                        <a class="blog" href="" data-placement="bottom" data-original-title="Blog"></a>
                    </div>
                </div>
            </div>
        </div>
       
            <div class="row">
                <div class="iphone span5">
                    <img src="img/iphone.png" alt="">
                </div>
                <div class="login span6" id="login">
                    <form name="myForm" action="LoginServlet" method="POST">
                        <h2>用户 <span class="red"><strong>登录</strong></span></h2>
                        <label for="username">用户名</label>
                        <input type="text" id="loginUser" name="username" >
                        <label for="password">密码</label>
                        <input type="password" id="loginPsw" name="password" placeholder="choose a password...">
                        <button type="submit" >登录</button>
                    </form>
                </div>
            </div>
       

        <!-- Javascript -->
        <script src="js/jquery-1.8.2.min.js"></script>
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <script src="js/jquery.backstretch.min.js"></script>
        <script src="js/scripts.js"></script>
        
    </body>

</html>

6.LoginServlet.java

package com.imooc.jdbc;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.RequestDispatcher;
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 com.imooc.jdbc.*;
 //登录验证
@WebServlet(name = "LoginServlet", urlPatterns = { "/LoginServlet" })
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException{
		doPost(request, response);
	}

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("username");
		String password = request.getParameter("password");
		String flag = request.getParameter("isLogin");
		List<Map<String, Object>> params = new ArrayList<Map<String,Object>>();
		Map<String, Object> param1 = new HashMap<String, Object>();
		param1.put("col", "username");
		param1.put("rel", "like");
		param1.put("value", name);
		params.add(param1);
		
		Map<String, Object> param2 = new HashMap<String, Object>();
		param2.put("col", "password");
		param2.put("rel", "like");
		param2.put("value", password);
		params.add(param2);
		UserDao dao = new UserDao();
		try {
			if (dao.queryByParams(params)) {
				RequestDispatcher dis = request.getRequestDispatcher("LoginSuc.jsp");
				dis.forward(request, response);
			} 
			else {
				request.setAttribute( "flag_login","false");
				request.getRequestDispatcher("LoginFal.jsp").forward(request,response);
				//RequestDispatcher dis = request.getRequestDispatcher("Login2.jsp");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

7.Register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta chaarset="utf-8">
        <title>注册</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="">
        <meta name="author" content="">
        <script src= "js/angular.min.js"></script>
        <!-- CSS -->
        <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet" href="css/style.css">

    </head>

    <body>
        <div class="header">
            <div class="container">  <!-- container 是bootstrap自带响应式样式 页面效果类似于 table-->
                <div class="row"> <!-- row 是bootstrap自带响应式样式 页面效果类似于 tr-->
                    <div class="register logo span4"> <!-- row 是bootstrap自带响应式样式 页面效果类似于 <td colspan="4">-->
                        <h1><a href="">注册页面<span class="red">.</span></a></h1>
                    </div>
                    <div class="login logo span4">
                        <h1><a href="Login.jsp">返回登录<span class="red">.</span></a></h1>
                    </div>
                    <div class="links span8">
                        <a class="home" href="" data-placement="left" data-original-title="主页"></a>
                        <a class="blog" href="" data-placement="bottom" data-original-title="Blog"></a>
                    </div>
                </div>
            </div>
        </div>
        <div class="register-container container">
            <div class="row">
                <div class="iphone span5">
                    <img src="img/iphone.png" alt="">
                </div>
                <div class="login span6" id="login">
                    <form action="RegisterServlet" method="post">
                        <h2>注册 <span class="red"><strong>用户</strong></span></h2>
                        <label for="username">用户名</label>
                        <input type="text" id="username" name="username" placeholder="enter your username...">
                        <label for="email">邮箱</label>
                        <input type="email" id="email" name="email" placeholder="enter your email...">
                        <label for="password">密码</label>
                        <input type="password" id="password" name="password" placeholder="choose a password...">
                        <label for="sex">性别</label>
                        <input type="text" list="sexList" id="sex" name="sex" placeholder="enter your sex...">
                        <datalist id="sexList">
                            <option></option>
                            <option></option>
                        </datalist>
                        <label for="address">住址</label>
                        <input type="text" id="address" name="address" placeholder="choose a address...">
                        <button type="submit">注册</button>
                    </form>
                </div>
               
            </div>
        </div>

        <!-- Javascript -->
        <script src="js/jquery-1.8.2.min.js"></script>
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <script src="js/jquery.backstretch.min.js"></script>
        <script src="js/scripts.js"></script>
        
    </body>

</html>

8.RegisterServlet.java

package com.imooc.jdbc;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.RequestDispatcher;
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 com.imooc.jdbc.*;
//注册验证
@WebServlet(name = "RegisterServlet", urlPatterns = { "/RegisterServlet" })
public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException{
		doPost(request, response);
	}

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("username");
		String password = request.getParameter("password");
		String email = request.getParameter("email");
		String sex = request.getParameter("sex");
		String Address = request.getParameter("Address");
		//String flag = request.getParameter("isLogin");
		UserVO user = new UserVO();
		user.setUsername(name);
		user.setEmail(email);
		user.setPassword(password);
		user.setSex(sex);
		user.setAddress(Address);
		UserDao dao = new UserDao();
		try {
			if(dao.addUser(user)) {
				RequestDispatcher dis = request.getRequestDispatcher("RegisterSuc.jsp");
				dis.forward(request, response);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

效果

登录页面

在这里插入图片描述
在这里插入图片描述
注册页面
在这里插入图片描述
在这里插入图片描述
参考文章:
https://blog.csdn.net/u011024652/article/details/51753481

https://blog.csdn.net/chineseD/article/details/84720338
第一次完成自己的web项目,感谢大佬

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值