在使用前要注意版本的问题,我的tomcat是9.0版本的,里面的注释比较少对新手来说看的话可能会比较费力点。
先在Mysql里面先建立一个demo数据库,再建立一个user表,创建的代码如下
create database Demo default charset=utf8;
use Demo;
create table user (
username varchar(30) not null unique,
password varchar(30) not null,
phone varchar(20),
addr varchar(30))engine=innodb default charset=utf8;
使用的方法,在开始里面找到MySQL点击这个,然后它会让你输入你的数据库的密码,输入后再把代码复制粘贴进去按回车键就行了。
然后在eclipse里面建立一个项目,
创建的各个类
这个登录注册项目,我只是随手的写了下,里面加了个监听器,用于监听session的一旦有用户登录就会显示在线的人数,
还有加入了一个过滤器用来,将各个类下的编码进行转换,还有就是没经过登录访问该项目下的其他类会强制跳转到login.jsp下。
虽然jstl标签我没用到,但还是需要导入进去的。
先连接数据库
package mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBGet {
public static String url = "jdbc:mysql://localhost:3306/Demo?serverTimezone=GMT%2B8";
//我的数据库连接需要这样的输入形式,如果不适合你的话可以试用下这个
//“?useSSL = false&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC”
public static String username = "root";//你数据库的用户名
public static String password = "?";//这是你数据库的密码
private static Connection con =null;
public void getConn(){
//连接数据库 ,cj的加入是要看你数据库的版本的问题的,版本低点都不用加”cj“的
try{
Class.forName("com.mysql.cj.jdbc.Driver");
con=DriverManager.getConnection(url,username,password);
System.out.println("连接数据库成功");
}
catch(ClassNotFoundException ex){
System.out.println("连接数据库失败");
ex.printStackTrace();
}
catch(SQLException ex){
System.out.println(ex.getMessage()+"dbget");
ex.printStackTrace();
}
}
public ResultSet getData(String sql) {
//用来获得参数
Statement stm=null;
try {
stm= con.createStatement();
ResultSet result =stm.executeQuery(sql);
System.out.println("获取数据库内容");
return result;
}catch(SQLException e){
System.out.println("SQLException!!!");
e.printStackTrace();
return null;
}
}
public void setData(String sql) {
//用来保存参数
Statement stm = null;
try{
stm = con.createStatement();
stm.executeUpdate(sql);
System.out.println(" 保存数据内容到数据库!");
}catch(SQLException e){
System.out.println("SQLException!!!");
e.printStackTrace();
}finally {
if(stm!=null) {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public void close(){
try{
con.close();
System.out.print("关闭!");
}
catch(SQLException e){
e.printStackTrace();
}
}
}
建立UserDAO
package sDAO;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import mysql.DBGet;
import sDO.User;
public class UserDAO {
public static boolean register(String username,String password,String phone,String address) {
//注册
DBGet db=new DBGet();
db.getConn();
try {
ResultSet rs=db.getData("select * from user where username='"+username+"'");
System.out.print(password);
if(rs.next()) {
rs.close();
db.close();
return false;//说明数据库中含有这个用户名
}else {
String sql="insert into user(username,password,phone,addr) values('"+username+"','"+password+"','"+phone+"','"+address+"')";
//String sql="insert into user(username,password,phone,addr) values('7','7','7','7')";
db.setData(sql);
db.close()