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();
}
}
}