JavaWeb项目 模糊查询不了点查询空白 DASHGUM

img


img


img


img


img


img


img

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语句是否正确。

img