User类
package com.gec.oa.bean;
import java.util.Date;
//3.1 用户的实体类
public class User {
// 3.1.1定义属性(根据数据库的表有多少列定义多少个属性)
private int id;
private String loginname;
private String password;
private int status;
private Date createdate;
private String username;
private String imgname;
// 3.1.2定义构造方法(无参构造)
public User() {
super();
}
// 3.1.2定义构造方法(有参构造)
public User(int id, String loginname, String password, int status, Date createdate, String username,
String imgname) {
super();
this.id = id;
this.loginname = loginname;
this.password = password;
this.status = status;
this.createdate = createdate;
this.username = username;
this.imgname = imgname;
}
// 3.1.3 为属性定义set()和get()方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Date getCreatedate() {
return createdate;
}
public void setCreatedate(Date createdate) {
this.createdate = createdate;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getImgname() {
return imgname;
}
public void setImgname(String imgname) {
this.imgname = imgname;
}
// 3.1.4定义toString()
@Override
public String toString() {
return "User [id=" + id + ", loginname=" + loginname + ", password=" + password + ", status=" + status
+ ", createdate=" + createdate + ", username=" + username + ", imgname=" + imgname + "]";
}
}
UserController类
package com.gec.oa.bean;
import java.util.Date;
//3.1 用户的实体类
public class User {
// 3.1.1定义属性(根据数据库的表有多少列定义多少个属性)
private int id;
private String loginname;
private String password;
private int status;
private Date createdate;
private String username;
private String imgname;
// 3.1.2定义构造方法(无参构造)
public User() {
super();
}
// 3.1.2定义构造方法(有参构造)
public User(int id, String loginname, String password, int status, Date createdate, String username,
String imgname) {
super();
this.id = id;
this.loginname = loginname;
this.password = password;
this.status = status;
this.createdate = createdate;
this.username = username;
this.imgname = imgname;
}
// 3.1.3 为属性定义set()和get()方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Date getCreatedate() {
return createdate;
}
public void setCreatedate(Date createdate) {
this.createdate = createdate;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getImgname() {
return imgname;
}
public void setImgname(String imgname) {
this.imgname = imgname;
}
// 3.1.4定义toString()
@Override
public String toString() {
return "User [id=" + id + ", loginname=" + loginname + ", password=" + password + ", status=" + status
+ ", createdate=" + createdate + ", username=" + username + ", imgname=" + imgname + "]";
}
}
UserDao类
package com.gec.oa.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import com.gec.oa.bean.User;
import com.gec.oa.utils.DataSourceTool;
//主要作用针对数据库的增删改查信息
public class UserDao {
// 查询管理员登录的操作方法
public User loginUser(User user) {
// 1、获取数据库的链接对象
Connection con = DataSourceTool.getConnection();
// 2、定义SQL操作语句 ?占位符 表示一个动态数据的入参
String sql = "select * from user_inf where loginname=? and password=? ;";
try {
// 3、通过链接对象的prepareStatement方法来获取一个SQL语句对象,入参sql语句
PreparedStatement statement = con.prepareStatement(sql);
// 4、 通过SQL语句对象的set方法赋值
statement.setString(1, user.getLoginname());
statement.setString(2, user.getPassword());
// 5、通过SQL语句对象来执行SQL语句
ResultSet set = statement.executeQuery();// 可以用于执行添加、删除、修改操作语句
// 判断
while (set.next()) {
int id = set.getInt("id");
String loginname = set.getString("loginname");
String password = set.getString("password");
int status = set.getInt("status");
Date createdate = set.getDate("createdate");
String username = set.getString("username");
String imgname = set.getString("imgname");
// 查询到用户数据,封装到对象中,并返回
User res_user = new User(id, loginname, password, status, createdate, username, imgname);
return res_user;
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//注册添加新用户信息操作方法
public boolean insetUser(User user) {
// 1、获取数据库的链接对象
Connection con = DataSourceTool.getConnection();
// 2、定义SQL操作语句 ?占位符 表示一个动态数据的入参
String sql = "insert into user_inf(loginname,password,status,createdate,username,imgname) values(?,?,?,?,?,?) ";
try {
// 3、通过链接对象的prepareStatement方法来获取一个SQL语句对象,入参sql语句
PreparedStatement statement = con.prepareStatement(sql);
// 4、 通过SQL语句对象的set方法赋值
statement.setString(1, user.getLoginname());
statement.setString(2, user.getPassword());
statement.setInt(3,user.getStatus());
//将date类型的时间格式转换为字符串类型
SimpleDateFormat sm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//格式化为字符串类型
String time=sm.format(user.getCreatedate());
statement.setString(4,time);
statement. setString(5,user.getUsername());
statement.setString(6,user.getImgname());
// 5、通过SQL语句对象来执行SQL语句
int res = statement.executeUpdate();// 可以用于执行添加、删除、修改操作语句
// 判断
if(res>0) {
return true;
}
}catch(SQLException e) {
e.printStackTrace();
}
return false;
}
//查询全部信息操作方法
public List<User> queryAllUser() {
List<User> list=new ArrayList<>();
// 1、获取数据库的链接对象
Connection con = DataSourceTool.getConnection();
// 2、定义SQL操作语句 ?占位符 表示一个动态数据的入参
String sql = "select * from user_inf; ";
try {
// 3、通过链接对象的prepareStatement方法来获取一个SQL语句对象,入参sql语句
PreparedStatement statement = con.prepareStatement(sql);
// 5、通过SQL语句对象来执行SQL语句
ResultSet set = statement.executeQuery();// 可以用于执行查询操作语句
// 判断
while (set.next()) {//判断
int id = set.getInt("id");
String loginname = set.getString("loginname");
String password = set.getString("password");
int status = set.getInt("status");
Date createdate = set.getDate("createdate");
String username = set.getString("username");
String imgname = set.getString("imgname");
// 查询到用户数据,封装到对象中,并返回
User res_user = new User(id, loginname, password, status, createdate, username, imgname);
//每获取到一个新的数据添加到list中
list.add(res_user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
//模糊查询信息操作方法
public List<User> queryUserByName(String name,String statu) {
List<User> list=new ArrayList<>();
// 1、获取数据库的链接对象
Connection con = DataSourceTool.getConnection();
// 2、定义SQL操作语句 ?占位符 表示一个动态数据的入参
String sql = "select * from user_inf where username like ? ;";
//判断是否使用状态status进行查询
if(statu !=null && !statu.equals("")) {
sql = "select * from user_inf where username like ? and status=? ;";
}
try {
// 3、通过链接对象的prepareStatement方法来获取一个SQL语句对象,入参sql语句
PreparedStatement statement = con.prepareStatement(sql);
//进行赋值
statement.setString(1, "%"+name+"%");
//判断是否使用状态status进行查询
if(statu !=null && !statu.equals("")) {
statement.setString(2, statu);
}
// 5、通过SQL语句对象来执行SQL语句
ResultSet set = statement.executeQuery();// 可以用于执行查询操作语句
while (set.next()) {// 判断
int id = set.getInt("id");
String loginname = set.getString("loginname");
String password = set.getString("password");
int status = set.getInt("status");
Date createdate = set.getDate("createdate");
String username = set.getString("username");
String imgname = set.getString("imgname");
// 查询到用户数据,封装到对象中,并返回
User res_user = new User(id, loginname, password, status, createdate, username, imgname);
//每获取到一个新的数据添加到list中
list.add(res_user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
UserService类
package com.gec.oa.service;
import java.util.List;
import com.gec.oa.bean.User;
//管理员模块的业务层接口 定义规范
public interface UserService {
// 查询管理员登录的操作方法
public User loginUser(User user);
//注册添加新用户信息操作方法
public boolean insetUser(User user);
//查询全部信息的操作方法
public List<User> queryAllUser();
//模糊查询信息操作方法
public List<User> queryUserByName(String name, String statu);
}
UserServiceImpl类
package com.gec.oa.service.impl;
import java.util.List;
import com.gec.oa.bean.User;
import com.gec.oa.dao.UserDao;
import com.gec.oa.service.UserService;
//管理员模块的业务层的实现类
public class UserServiceImpl implements UserService{
//创建UserDao的对象,调用数据库的操作方法
UserDao dao = new UserDao();
@Override
public User loginUser(User user) {
//调用数据库的操作方法
return dao.loginUser(user);
}
@Override
public boolean insetUser(User user) {
// TODO Auto-generated method stub
return dao.insetUser(user);
}
@Override
public List<User> queryAllUser() {
// TODO Auto-generated method stub
return dao.queryAllUser();
}
@Override
public List<User> queryUserByName(String name, String statu) {
// TODO Auto-generated method stub
return dao.queryUserByName(name, statu);
}
}
DataSourceTool类
package com.gec.oa.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//定义一个工具类用于获取数据库的链接对象
public class DataSourceTool {
// 提供url、用户名、密码
static String url = "jdbc:mysql://localhost:3306/oa_web?useUnicode=true&characterEncoding=utf8";
static String user = "root";
static String password = "1234";
//定义一个变量用于存放链接
static Connection con = null;
static {// 1、加载驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//定义一个静态方法用于获取数据库的链接对象
public static Connection getConnection() {// 通过驱动管理者来获取数据库的链接对象
try {
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
//
return con;
}
}
在后台调试一下,查询的SQL语句是否正确。