import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCUtil {
private static String driverClassName = "com.mysql.jdbc.Driver";
private static String url="jdbc:mysql://localhost:3306/mydb";
private static String username="root";
private static String password="root";
static {
try {
Class.forName(driverClassName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
Connection connection = DriverManager.getConnection(url, username, password);
return connection;
}
public static void closeConnection(Connection connection) throws SQLException {
connection.close();
}
public static int executeUpdate(String sql,Object[] params) throws SQLException {
Connection connection = getConnection();
PreparedStatement s = connection.prepareStatement(sql);
if(params != null) {
for(int i = 0;i<params.length;i++) {
s.setObject(i+1,params[i] );
}
}
int n = s.executeUpdate();
s.close();
return n;
}
public static ResultSet executeQuery( Connection connection,String sql,Object[] params) throws SQLException {
PreparedStatement s = connection.prepareStatement(sql);
if(params != null) {
for(int i = 0;i<params.length;i++) {
s.setObject(i+1,params[i] );
}
}
ResultSet rs = s.executeQuery();
return rs;
}
}
package com.neu.dao;
import java.sql.SQLException;
import java.util.List;
import com.neu.entity.User;
public interface UserDao {
User login(String username, String password) throws SQLException;
int register(String username, String password, String mail) throws SQLException;
int adduser(String username, String password, String mail) throws SQLException;
int deleteuser(int id) throws SQLException;
int updateuser(int id, String username, String password, String mail, int power) throws SQLException;
List selectusers() throws SQLException;
List<User> selectuserbyname(String username) throws SQLException;
User selectuserbyid(int id) throws SQLException;
int updateuserself(String username, String password, String mail, int id) throws SQLException;
User selectuserself(int id) throws SQLException;
boolean checkUsername(String name) throws SQLException;
int regist2(String username, String password, String mail) throws SQLException;
}
package com.neu.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.neu.entity.User;
public class UserDaoImpl implements UserDao {
@Override
public User login(String username,String password) throws SQLException {
String sql="select * from myuser where username=? and password =?";
Connection connection = JDBCUtil.getConnection();
Object[] params= {username,password};
ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
User user=null;
if(rs.next()) {
int id=rs.getInt("id");
String mail=rs.getString("mail");
int power = rs.getInt("power");
user = new User(id, username, password, mail, power);
}
rs.close();
JDBCUtil.closeConnection(connection);
return user;
}
@Override
public int register(String username,String password,String mail) throws SQLException {
String sql="insert into myuser(username,password,mail) values(?,?,?)";
Object[] params=new Object[] {username,password,mail};
int n = JDBCUtil.executeUpdate(sql,params);
return n;
}
@Override
public int adduser(String username,String password,String mail) throws SQLException {
String sql="insert into myuser(username,password,mail) values(?,?,?)";
Object[] params=new Object[] {username,password,mail};
int n = JDBCUtil.executeUpdate(sql,params);
return n;
}
@Override
public int deleteuser(int id) throws SQLException {
String sql="delete from myuser where id=?";
Object[] params=new Object[] {id};
int n = JDBCUtil.executeUpdate(sql,params);
return n;
}
@Override
public int updateuser(int id,String username,String password,String mail,int power) throws SQLException {
String sql="update myuser set username=?,password=?,mail=?,power=? where id=?";
Object[] params=new Object[] {username,password,mail,power,id};
int n = JDBCUtil.executeUpdate(sql,params);
return n;
}
@Override
public List selectusers() throws SQLException {
String sql="select * from myuser order by id ";
Connection connection = JDBCUtil.getConnection();
ResultSet rs = JDBCUtil.executeQuery(connection, sql,null);
User user=null;
List<User> users=new ArrayList<>();
while(rs.next()) {
int id = rs.getInt("id");
String username = rs.getString("username");
String password = rs.getString("password");
String mail = rs.getString("mail");
int power = rs.getInt("power");
user=new User(id,username,password,mail,power);
users.add(user);
}
rs.close();
JDBCUtil.closeConnection(connection);
return users;
}
@Override
public List<User> selectuserbyname(String username) throws SQLException{
String sql="select * from myuser where username like ?";
List<User> users=new ArrayList<>();
Connection connection = JDBCUtil.getConnection();
Object[] params= {"%"+username+"%"};
ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
User user=null;
while(rs.next()) {
int id=rs.getInt("id");
String mail=rs.getString("mail");
int power = rs.getInt("power");
String password=rs.getString("password");
String username1=rs.getString("username");
user = new User(id, username1, password, mail, power);
users.add(user);
}
rs.close();
JDBCUtil.closeConnection(connection);
return users;
}
@Override
public User selectuserbyid(int id) throws SQLException{
String sql="select * from myuser where id=? ";
Connection connection = JDBCUtil.getConnection();
Object[] params= {id};
ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
User user=null;
if(rs.next()) {
String username = rs.getString("username");
String mail=rs.getString("mail");
int power = rs.getInt("power");
String password=rs.getString("password");
user = new User(id, username, password, mail, power);
}
rs.close();
JDBCUtil.closeConnection(connection);
return user;
}
@Override
public int updateuserself(String username,String password,String mail,int id) throws SQLException {
String sql="update myuser set username=?,password=?,mail=? where id=?";
Object[] params=new Object[] {username,password,mail,id};
int n = JDBCUtil.executeUpdate(sql,params);
return n;
}
@Override
public User selectuserself(int id) throws SQLException{
String sql="select * from myuser where id=? ";
Connection connection = JDBCUtil.getConnection();
Object[] params= {id};
ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
User user=null;
if(rs.next()) {
String username = rs.getString("username");
String mail=rs.getString("mail");
int power = rs.getInt("power");
String password=rs.getString("password");
user = new User(id, username, password, mail, power);
}
rs.close();
JDBCUtil.closeConnection(connection);
return user;
}
@Override
public int regist2(String username,String password,String mail) throws SQLException {
String sql="insert into myuser(username,password,mail) values(?,?,?)";
Object[] params=new Object[] {username,password,mail};
int n = JDBCUtil.executeUpdate(sql,params);
return n;
}
@Override
public boolean checkUsername(String name) throws SQLException {
String sql="select * from myuser where username=?";
Connection connection = JDBCUtil.getConnection();
Object[] params= {name};
ResultSet rs = JDBCUtil.executeQuery(connection, sql,params);
if(rs.next()) {return true;}else {return false;}
}
}
package com.neu.entity;
public class User {
private Integer id;
private String username;
private String password;
private String mail;
private Integer power;
public User(Integer id, String username, String password, String mail, Integer power) {
super();
this.id = id;
this.username = username;
this.password = password;
this.mail = mail;
this.power = power;
}
public User() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public Integer getPower() {
return power;
}
public void setPower(Integer power) {
this.power = power;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((mail == null) ? 0 : mail.hashCode());
result = prime * result + ((password == null) ? 0 : password.hashCode());
result = prime * result + ((power == null) ? 0 : power.hashCode());
result = prime * result + ((username == null) ? 0 : username.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (mail == null) {
if (other.mail != null)
return false;
} else if (!mail.equals(other.mail))
return false;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
if (power == null) {
if (other.power != null)
return false;
} else if (!power.equals(other.power))
return false;
if (username == null) {
if (other.username != null)
return false;
} else if (!username.equals(other.username))
return false;
return true;
}
@Override
public String toString() {
String power1;
if(power==1) {
power1="普通用户";
}else {
power1="管理员";
}
return " " + id + "\t" + username + "\t" + password + "\t" + mail + "\t"
+ power1 + "\n";
}
}
package com.neu.service;
import java.sql.SQLException;
import com.neu.entity.User;
public interface UserService {
public int regist2(String username,String password,String mail) throws SQLException;
}
package com.neu.service;
import java.sql.SQLException;
import com.neu.dao.UserDao;
import com.neu.dao.UserDaoImpl;
import com.neu.entity.User;
public class UserServiceImpl implements UserService {
private static UserDao userDao=new UserDaoImpl();
@Override
public int regist2(String username, String password, String mail) throws SQLException {
if(username.length()<3 || username.length()<3) {
return -2;
}
boolean b = userDao.checkUsername(username);
if(b) {
return -3;
}
else{userDao.adduser(username, password, mail);
return 1;}
}
package com.neu.ui;
import java.sql.SQLException;
import java.util.List;
import java.util.Scanner;
import com.neu.dao.UserDao;
import com.neu.dao.UserDaoImpl;
import com.neu.entity.User;
import com.neu.service.UserService;
import com.neu.service.UserServiceImpl;
public class StartSystem {
static Scanner input= new Scanner(System.in);
static UserDao userDao=new UserDaoImpl();
static int id=0;
public static void main(String[] args) throws SQLException {
while(true) {
System.out.println("欢迎来到用户管理系统");
System.out.println("===================");
System.out.println("1.用户登录");
System.out.println("2.用户注册");
System.out.println("3.程序退出");
int n=input.nextInt();
switch (n) {
case 1:
login();
continue;
case 2:
register2();
continue;
case 3:
System.out.println("退出程序");
break;
default:
System.out.println("输入错误");
break;
}
break;
}
}
private static void login() throws SQLException {
System.out.println("用户登录界面");
System.out.println("======================");
System.out.println("请输入用户名:");
String username=input.next();
System.out.println("请输入密码");
String password = input.next();
UserDao userDao=new UserDaoImpl();
User user = userDao.login(username, password);
if(user!=null) {
System.out.println("登录成功...");
System.out.println("====================");
System.out.println("欢迎登录主窗体");
System.out.println(username+"您好!您的权限是:"+(user.getPower()==2?"管理员":"普通用户"));
if(user.getPower()==2) {
int p=0;
while(p==0) {
System.out.println("======================");
System.out.println("1.添加用户");
System.out.println("2.删除用户");
System.out.println("3.修改用户");
System.out.println("4.查询用户");
System.out.println("5.程序退出");
int n=input.nextInt();
switch(n) {
case 1:
adduser();
break;
case 2:
deleteuser();
break;
case 3:
updateuser();
break;
case 4:
int p4=0;
while(p4==0) {
System.out.println("1.查询全部用户");
System.out.println("2.根据姓名查询用户");
System.out.println("3.根据id查询用户");
System.out.println("4.退出查询");
System.out.println("请输入要做的操作");
int n4=input.nextInt();
switch(n4) {
case 1:
selectusers();break;
case 2:
selecteuserbyname(); break;
case 3:
selecteuserbyid();break;
case 4:
p4=1;continue;
default:
System.out.println("输入错误");
break;
}};
break;
case 5:
p=1;break;
}
}
}else {int p=0;
while(p==0) {
System.out.println("======================");
id=user.getId();
System.out.println("1.修改自己信息");
System.out.println("2.查询自己信息");
System.out.println("3.程序退出");
int n=input.nextInt();
switch(n) {
case 1:
updateuserself();break;
case 2:
selecteuserself();break;
case 3:
p=1;break;
default: p=1;
System.out.println("输入错误");break;
}
}
}
}
else {
System.out.println("没有该用户");
}
}
private static void register() throws SQLException{
System.out.println("用户注册界面");
System.out.println("=====================");
System.out.println("请输入用户名:");
String username=input.next();
System.out.println("请输入密码");
String password = input.next();
System.out.println("请输入邮箱");
String mail = input.next();
UserDao userDao=new UserDaoImpl();
int n = userDao.register(username, password, mail);
if(n>0) {
System.out.println("用户注册成功");
}else {
System.out.println("用户注册失败");
}
}
private static void register2() throws SQLException{
System.out.println("用户注册界面");
System.out.println("=====================");
System.out.println("请输入用户名:");
String username=input.next();
System.out.println("请输入密码");
String password = input.next();
System.out.println("请输入邮箱");
String mail = input.next();
UserService userservice=new UserServiceImpl();
int n = userservice.regist2(username, password, mail);
if(n>0) {
System.out.println("用户注册成功");
}
else if(n==-2){
System.out.println("用户名或密码长度小于3");
}
else if(n==-3){
System.out.println("用户名已存在");
}else {
System.out.println("用户注册失败");
}
}
private static void adduser() throws SQLException {
System.out.println("请输入用户名:");
String username=input.next();
System.out.println("请输入密码");
String password = input.next();
System.out.println("请输入邮箱");
String mail = input.next();
UserDao userDao=new UserDaoImpl();
int n = userDao.adduser(username, password, mail);
if(n>0) {
System.out.println("用户添加成功");
}else {
System.out.println("用户添加失败");
}
}
private static void deleteuser() throws SQLException{
System.out.println("请输入用户id");
int id = input.nextInt();
int n = userDao.deleteuser(id);
if(n>0) {
System.out.println("用户删除成功");
}else {
System.out.println("用户删除失败");
}
}
private static void updateuser() throws SQLException{
System.out.println("请输要修改的用户id号码:");
int id = input.nextInt();
System.out.println("请输要修改的用户姓名:");
String username=input.next();
System.out.println("请输要修改的用户密码:");
String password=input.next();
System.out.println("请输要修改的用户邮箱:");
String mail=input.next();
System.out.println("请输要修改的用户权限:");
int power = input.nextInt();
int n = userDao.updateuser(id,username, password, mail,power);
if(n>0) {
System.out.println("用户修改成功");
}else {
System.out.println("用户修改失败");
}
}
private static void selectusers() throws SQLException {
List users = userDao.selectusers();
System.out.println(users.toString());
}
private static void selecteuserbyname() throws SQLException {
System.out.println("请输要查询的用户姓名:");
String username=input.next();
List users = userDao.selectuserbyname(username);
if(users!=null) {System.out.println(users);}
else {System.out.println("没有该用户");}
}
private static void selecteuserbyid() throws SQLException {
System.out.println("请输要修改的用户id:");
int id = input.nextInt();
User user = userDao.selectuserbyid(id);
System.out.println(user);
}
private static void updateuserself() throws SQLException{
User user = userDao.selectuserbyid(id);
System.out.println(user);
System.out.println("请输要修改的用户姓名:");
String username=input.next();
System.out.println("请输要修改的用户密码:");
String password=input.next();
System.out.println("请输要修改的用户邮箱:");
String mail=input.next();
int n = userDao.updateuserself(username, password, mail, id);
if(n>0) {
System.out.println("用户修改成功");
}else {
System.out.println("用户修改失败");
}
}
private static void selecteuserself() throws SQLException {
User user = userDao.selectuserbyid(id);
System.out.println(user);
}
}