实现搜索框查询功能在页面显示(数据库中读取)

搞了半天,才出来效果。不说了直接上图

如上图所示,从数据库中查询出来的数据中通过搜索框进行模糊匹配查询,找到指定的字段数据信息。

下面给出相关的代码:

jsp代码:

<body>
 <%
UserServiceImpl usi=new UserServiceImpl();
try{
String name=request.getParameter("search");
if(name==null){
    name="";
}
List<User> all=usi.findName(name);
Iterator<User> iter=all.iterator();
%>  
    <div class="topnav">
        <a>请输入要查询的信息</a>
        <div class="search-container">
           <form id="searchForm">
              <input type="text" placeholder="搜索..." name="search">
              <button type="submit">提交</button>
           </form>
        </div>     
    </div>

    <div style="width: 98%; height: 420px;margin:auto; overflow: auto;margin-top:20px;">
        <table>
            <thead>
                <tr class="mytr">
                    <td><input type="checkbox" name="checkall"></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('name')">姓名</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('age')">年龄</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('nationality')">国籍</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('sex')">性别</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('birth')">生日</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('phone')">电话号码</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('idcard')">身份证</a></td>
                    <td><a href="javascript:void(0)"
                        onclick="showListOrder('address')">地址</a></td>
                </tr>
            </thead>
            <tbody>
                <%-- <c:forEach items="${list}" var="list"> --%>
                <%
                while(iter.hasNext()){
                    User user=iter.next();
                %>
                    <tr>
                        <td><input type="checkbox" value="<%=user.getId() %>" name="checkone"></td>
                        <td style="word-wrap: break-word; width: 70px;"><%=user.getName() %></td>
                        <td><%=user.getAge() %></td>
                        <td><%=user.getNationality() %></td>
                        <td><%=user.getSex() %></td>
                        <td><%=user.getBirth() %></td>
                        <td><%=user.getPhone() %></td>
                        <td><%=user.getIdcard() %></td>
                        <td><%=user.getAddress() %></td>
                    </tr>
                <%
                } 
                %>
            </tbody>
        </table>
    </div>

        <%
}catch(Exception e){
    e.printStackTrace();
}
       %> 
</body>

Dao层Impl:

@Override
    public List<User> findName(String name) throws Exception {
        List<User> all=new ArrayList<User>();
        Connection con=DBUtil.getConnection();
        PreparedStatement ps=con.prepareStatement("select * from User where name like ?");
        ps.setString(1, "%"+name+"%");
        ResultSet rs=ps.executeQuery();
        User user=null;
        while(rs.next()){
            user=new User();
            user.setId(rs.getInt(1));
            user.setName(rs.getString(2));
            user.setAge(rs.getInt(3));
            user.setNationality(rs.getString(4));
            user.setSex(rs.getString(5));
            user.setBirth(rs.getDate(6));
            user.setPhone(rs.getString(7));
            user.setIdcard(rs.getString(8));
            user.setAddress(rs.getString(9));
            all.add(user);
        }
        ps.close();
        DBUtil.close(con);
        return all;
    }

service层:

@Service
public class UserServiceImpl implements UserService{
    
    @Resource
    private UserDao userDao;

    @Override
    public List<User> findName(String name) throws Exception {
        UserDaoImpl dao=new UserDaoImpl();
        List<User> all=dao.findName(name);
        return all;
    }

}

DBUtil包(获取数据库连接):

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
    //连接数据库
    public static Connection getConnection(){
        Connection con = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = 
                DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/sertest?useUnicode=true&characterEncoding=utf8",
                "root","123456");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return con;
    } 
    
    //关闭连接
    public static void close(Connection con){
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

其中主要部分核心代码基本附上!!!

posted @ 2018-09-20 17:08  不是一个世界的人  阅读(21121)  评论(3编辑  收藏  举报