MySQL 小项目 基于MVC开发模式

MVC开发模式:

在这里插入图片描述

功能介绍:

用户注册
用户登录
查看用户列表
查看用户详情
修改用户信息
删除用户

一、Model

package model;

import util.JDBCUtil;

/**
 * 删除用户信息
 * 
 * @author 张子伦
 *
 */
public class DeleteModel {
	/**
	 * 删除用户信息方法
	 * 
	 * @author 张子伦
	 *
	 */
	public int userDelete(String name){
		String sql = "delete from t_user where username = '"+name+"'";
		int i = JDBCUtil.executeSQL(sql);
		return i;
	}
}

package model;

import java.sql.ResultSet;
import java.sql.SQLException;

import util.JDBCUtil;

/**
 * 用户登录
 * 
 * @author 张子伦
 *
 */
public class LoginModel {
	
	/**
	 * 用户登录方法
	 * 
	 * @author 张子伦
	 *
	 */
	public boolean userLogin(String name, String pwd){
		boolean isOk = false;
		
		String sql = "select * from t_user where username='"+name+"' and pwd ='"+pwd+"'";
		ResultSet rs = JDBCUtil.search(sql);
		try {
			isOk = rs.next();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return isOk;
	}
}

package model;

import java.util.UUID;

import entity.User;
import util.JDBCUtil;

/**
 * 用户注册
 * 
 * @author 张子伦
 *
 */
public class RegeditModel {
	
	/**
	 * 注册用户的方法
	 * 
	 * @param user
	 * @return
	 */
	public boolean userRegedit(User user){
		boolean isOk = false;
		//获得一个随机32位UUID号,安全,防破解
		String id = (UUID.randomUUID()+"").replace("-", "");
		
		String sql = "insert into t_user values('"+id+"','"+user.getUsername()+"','"+user.getPwd()+"','"+user.getSex()+"',"+user.getAge()+",'"+user.getPhone()+"','"+user.getEmail()+"','"+user.getIdcard()+"','"+user.getAddr()+"')";
		int i = JDBCUtil.executeSQL(sql);
		if(i > 0){
			isOk = true;
		}
		return isOk;
	}
}

package model;

import java.sql.ResultSet;
import java.sql.SQLException;

import util.JDBCUtil;

/**
 * 修改用户信息
 * 
 * @author 张子伦
 *
 */
public class UpdateModel {
	/**
	 * 修改用户信息方法
	 * 
	 * @author 张子伦
	 *
	 */
	public int userUpdate(String name){
		
		String sql = "update t_user set phone = '1111111111' where username = '"+name+"'";
		int i = JDBCUtil.executeSQL(sql);
		return i;
	}
}

package model;

import java.sql.ResultSet;
import java.sql.SQLException;

import util.JDBCUtil;
/**
 * 查看用户详细信息方法
 * 
 * @author 张子伦
 *
 */
public class VisitAllModel {
	
	/**
	 * 查看用户详细信息方法
	 * 
	 * @author 张子伦
	 *
	 */
	public void userVisit(){
		String sql = "select * from t_user";
		ResultSet rs = JDBCUtil.search(sql);
		try {
			while(rs.next()){
				String id = rs.getString("id");
				String name = rs.getString("username");
				String pwd = rs.getString("pwd");
				String sex = rs.getString("sex");
				int age = rs.getInt("age");
				String phone = rs.getString("phone");
				String email = rs.getString("email");
				String idcard = rs.getString("idcard");
				String addr = rs.getString("addr");
				System.out.println("id:"+id+" , username:"+name+" , pwd:"+pwd+" , sex:"+sex+" , age"+age+" , phone:"+phone+" , email:"+email+" , idcard:"+idcard+" , addr:"+addr);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		JDBCUtil.close();
	}
}

package model;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Iterator;

import entity.User;
import util.JDBCUtil;

/**
 * 查看用户列表
 * 
 * @author 张子伦
 *
 */
public class VisitModel {

	/**
	 * 查看用户列表方法
	 * 
	 * @author 张子伦
	 *
	 */
	public void userVisit(){
		String sql = "select username from t_user";
		ResultSet rs = JDBCUtil.search(sql);
		try {
			while(rs.next()){
				String name = rs.getString("username");
				System.out.println(name);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		JDBCUtil.close();
	}
}

二、View

package view;

import java.util.Scanner;

import controller.UserController;

public class DeleteView {

	public static void main(String[] args) {
		UserController controller = new UserController();
		System.out.println("请输入需要删除的用户名:");
		Scanner sc = new Scanner(System.in);
		String name = sc.next();
		if(controller.delete(name) == 1){
			System.out.println("删除成功!");
		}else{
			System.out.println("删除失败!");
		}
		
	}

}

package view;

import java.util.Scanner;

import controller.UserController;

public class LoginView {

	public static void main(String[] args) {
		UserController controller = new UserController();
		Scanner sc = new Scanner(System.in);
		boolean flag = true;
		while(flag){
			System.out.println("用户登录");
			System.out.println("请输入用户名:");
			String name = sc.next();
			System.out.println("请输入密码:");
			String pwd = sc.next();
			if(controller.login(name, pwd)){
				System.out.println("登陆成功!进入主页!");
				flag = false;
			}else{
				System.out.println("登陆失败!请重新登录!");
			}
		}
	}

}

package view;

import controller.UserController;
import entity.User;

public class RegeditView {
	
	public static void main(String[] args){
		UserController controller = new UserController();
		User u = new User(null, "admin", "123456", "男", 20, "13302132501", "13302132501@qq.com", "124261279401561123", "吉林省吉林市");
		if(controller.regedit(u)){
			System.out.println("用户注册成功!");
		}else{
			System.out.println("用户注册失败!");
		}
	}
}

package view;

import java.util.Scanner;

import controller.UserController;

public class UpdateView {

	public static void main(String[] args) {
		UserController controller = new UserController();
		System.out.println("请输入需要更新数据的用户名:");
		Scanner sc = new Scanner(System.in);
		String name = sc.next();
		if(controller.update(name) == 1){
			System.out.println("修改成功!");
		}else{
			System.out.println("修改失败!");
		}
	}

}

package view;

import controller.UserController;

public class VisitAllView {

	public static void main(String[] args) {
		UserController controller = new UserController();
		controller.visitAll();
	}

}

package view;

import controller.UserController;

public class VisitView {

	public static void main(String[] args) {
		UserController controller = new UserController();
		controller.visit();
	}

}

三、Controller

package controller;

import entity.User;
import model.DeleteModel;
import model.LoginModel;
import model.RegeditModel;
import model.UpdateModel;
import model.VisitAllModel;
import model.VisitModel;

public class UserController {
	
	/**
	 * 找到用户注册的业务模型,并执行业务方法
	 * 
	 * @param user
	 * @return
	 */
	public boolean regedit(User user){
		RegeditModel model = new RegeditModel();
		return model.userRegedit(user);
	}
	
	/**
	 * 找到用户登录的业务模型,并执行业务方法
	 * 
	 * @param user
	 * @return
	 */
	public boolean login(String name,String pwd){
		LoginModel model = new LoginModel();
		return model.userLogin(name, pwd);
	}
	
	/**
	 * 找到用户名列表的业务模型,并执行业务方法
	 * 
	 * @param user
	 * @return
	 */
	public void visit(){
		VisitModel model = new VisitModel();
		model.userVisit();
	}
	
	/**
	 * 找到用户详细信息的业务模型,并执行业务方法
	 * 
	 * @param user
	 * @return
	 */
	public void visitAll(){
		VisitAllModel model = new VisitAllModel();
		model.userVisit();
	}
	
	/**
	 * 找到修改用户信息的业务模型,并执行业务方法
	 * 
	 * @param user
	 * @return
	 */
	public int update(String name){
		UpdateModel model = new UpdateModel();
		return model.userUpdate(name);
	}
	
	/**
	 * 找到删除用户信息的业务模型,并执行业务方法
	 * 
	 * @param user
	 * @return
	 */
	public int delete(String name){
		DeleteModel model = new DeleteModel();
		return model.userDelete(name);
	}
}

四、Entity

package entity;

public class User {
	private String id;
	private String username;
	private String pwd;
	private String sex;
	private int age;
	private String phone;
	private String email;
	private String idcard;
	private String addr;

	public String getId() {
		return id;
	}

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

	public String getUsername() {
		return username;
	}

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

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getPhone() {
		return phone;
	}

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

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getIdcard() {
		return idcard;
	}

	public void setIdcard(String idcard) {
		this.idcard = idcard;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	public User(String id, String username, String pwd, String sex, int age, String phone, String email, String idcard,
			String addr) {
		this.id = id;
		this.username = username;
		this.pwd = pwd;
		this.sex = sex;
		this.age = age;
		this.phone = phone;
		this.email = email;
		this.idcard = idcard;
		this.addr = addr;
	}

	public User() {
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", pwd=" + pwd + ", sex=" + sex + ", age=" + age
				+ ", phone=" + phone + ", email=" + email + ", idcard=" + idcard + ", addr=" + addr + "]";
	}

}

五、Util

package util;

//sql下的包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
  * 操作数据库的工具类
  *
  * @author 张子伦
  */
public class JDBCUtil {
	private static final String DB_USER_NAME = "root"; //数据库用户名
	private static final String DB_PASSWORD = "root"; //数据库密码
	private static final String DB_NAME = "user_management"; //数据库名称
	private static final String IP = "127.0.0.1"; //安装MySQL数据库的服务器的IP地址,本地为127.0.0.1
	private static final String URL = "jdbc:mysql://"+IP +":3306/"+ DB_NAME; //MySQL连接地址

	private static Connection conn; //创建连接对象(路)
	private static Statement stmt; //执行命令的对象(执行sql语句)(人)
	private static ResultSet rs; //保存select之后查询结果的数据的对象(车)
	
	/**
	 * 获得数据库连接对象Connection
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	private static Connection getCon() throws ClassNotFoundException, SQLException{
		//加载MySQL驱动
		Class.forName("com.mysql.jdbc.Driver");
		if(conn == null || conn.isClosed()){
			conn = DriverManager.getConnection(URL, DB_USER_NAME, DB_PASSWORD);			
		}
		return conn;
	}
	
	/**
	 * 获得statement对象,用于执行SQL语句
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	private static Statement openStmt() throws ClassNotFoundException, SQLException{
		stmt = getCon().createStatement();
		return stmt;
	}
	
	/**
	 * 执行数据库增(insert),删(delete),改(update)的操作
	 * @param sql
	 * @return
	 */
	public static int executeSQL(String sql){
		int i = 0;
		try {
			i = openStmt().executeUpdate(sql); //执行sql语句
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally{
			//关闭数据库相关对象
			close();
		}
		return i;
	}
	
	/**
	 * 执行数据库查询(select)的操作
	 * @param sql
	 * @return
	 */
	public static ResultSet search(String sql){
		try {
			rs = openStmt().executeQuery(sql);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rs;
	}
	
	/**
	 * 关闭数据库的方法
	 */
	public static void close(){
		try {
			if(rs != null){
				rs.close(); //关闭ResultSet(车)
			}
			if(stmt != null){
				stmt.close(); //关闭Statement对象(人)
			}
			if(conn != null){
				conn.close(); //关闭Connection对象(路)
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值