数据库操作实例:用户管理

JDBC用户管理
1.设计数据库和实体类;
数据库表:user(id,uname,password)
实体类:User
2.实现用户登录;
用户输入用户名密码后到数据库查询判断登录是否成功。
3.实现用户注册;
用户输入用户名密码,数据库添加对应数据。
用户名不允许和已有用户名重复。
4.实现用户注销;
用户输入用户名,删除用户。
删除前需要检查是否存在这个用户,如果存在,需要验证密码。


创建一个 user  数据表,有  username,password

每个数据库表都对应一个实体类

user 实体类   pojo

package cn.xtnotes.pojo;

public class User {
	
	private int id;
	private String username;
	private String password;
	
	public User(int id, String username, String password) {
		this.id = id;
		this.username = username;
		this.password = password;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

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

	public String getPassword() {
		return password;
	}

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

服务类 service

package cn.xtnotes.service;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import cn.xtnotes.util.GetConnetion;

public class Service {
	
	
     //登录
	public static String login (String uname,String pwd) throws Exception{
		String msg="登录失败";
		String sql="select * from user where username='"+uname+"' and password='"+pwd+"'";
		Connection conn=GetConnetion.getConn();
		Statement stmt=conn.createStatement();
		ResultSet rs=stmt.executeQuery(sql);
		if(rs.next()) {
			msg="登录成功";
		}
		conn.close();
		stmt.close();
			return msg;
	}
	//注册
	public static String register(String uname,String pwd) throws SQLException {
		String msg="失败";
		if("存在".equals(finduname(uname))) {
			msg="注册失败,用户名已存在。";
		}else {
			String sql="insert into user(username,password) values('"+uname+"','"+pwd+"')";
			Connection conn=GetConnetion.getConn();
			Statement stmt=conn.createStatement();
			int i=stmt.executeUpdate(sql); //执行sql并返回受影响的数据条数
			if(i>0) {
				msg="注册成功";
			}else {
				msg="sql错误,注册失败";
			}
			conn.close();
			stmt.close();
		}
	return msg;	
	}
	//判断用户名是否存在
	public static String finduname(String uname) throws SQLException {
		String msg="不存在";
		String sql="select * from user where username='"+uname+"'";
		Connection conn=GetConnetion.getConn();
		Statement stmt=conn.createStatement();
		ResultSet rs=stmt.executeQuery(sql);
		
		if(rs.next()) {
			msg="存在";
		}
		conn.close();
		stmt.close();
		return msg;
	}
	//注销
	public static  String out(String uname,String pwd) throws Exception {
		String msg="注销失败";
		if("不存在".equals(finduname(uname))) {
			msg="用户名不存在";
		}else {
			if("登录成功".equals(login(uname,pwd))) {
				String sql="delete from user where username='"+uname+"'";
				Connection conn=GetConnetion.getConn();
				Statement stmt=conn.createStatement();
				int i=stmt.executeUpdate(sql); //执行sql并返回受影响的数据条数
				if(i>0) {
					msg="注销成功";
				}else {
					msg="sql错误,注销失败";
				}
				conn.close();
				stmt.close();
			}
		}
		return msg;
	}
}

公共链接类

package cn.xtnotes.util;

import java.sql.Connection;
import java.sql.DriverManager;

public class GetConnetion {
	
	
	private static String address="jdbc:mysql://localhost:3306/data2?useSSL=false&serverTimezone=UTC"; 
	private static String dataBaseName="root"; 
	private static String dataBasePwd="123456";
	
	public static Connection getConn() {
		Connection conn =null;
		
			try {
				Class.forName("com.mysql.cj.jdbc.Driver");
				conn = DriverManager.getConnection(address,dataBaseName,dataBasePwd);
			} catch (Exception e) {
				System.out.println("链接失败");
				e.printStackTrace();
			}
		return conn;
	}
}

text类

package cn.xtnotes.text;

import java.util.Scanner;

import cn.xtnotes.service.Service;

public class Text {
	
	public static void login1() throws Exception {
		Scanner s=new Scanner(System.in);
		System.out.println("请输入用户名:");
		String uname=s.next();
		System.out.println("请输入密码:");
		String pwd=s.next();
		
		String i=Service.login(uname, pwd);
		System.out.println(i);
		
	}
	public static void reg() throws Exception {
		Scanner s=new Scanner(System.in);
		System.out.println("请输入用户名:");
		String uname=s.next();
		System.out.println("请输入密码:");
		String pwd=s.next();
		
		String i=Service.register(uname, pwd);
		System.out.println(i);
		
	}
	public static void out() throws Exception {
		Scanner s=new Scanner(System.in);
		System.out.println("请输入用户名:");
		String uname=s.next();
		System.out.println("请输入密码:");
		String pwd=s.next();
		
		String i=Service.out(uname, pwd);
		System.out.println(i);
		
	}

	public static void main(String[] args) throws Exception {
		Scanner s=new Scanner(System.in);
		System.out.println("1.登录");
		System.out.println("2.注册");
		System.out.println("3.注销");
		System.out.println("选择序号:");
		int c=s.nextInt();
		if(c==1) {
			login1();
		}else if(c==2){
			reg();
		}
		else if(c==3){
			out();
		}
	}
}

本程序 jdbc 用户管理

实现对数据库的增删改查

即 对用户的登陆,注册,注销

阅读剩余
THE END