美文网首页
一个page的项目,fastjson和artTemplate以及

一个page的项目,fastjson和artTemplate以及

作者: 小猪Harry | 来源:发表于2018-07-13 21:18 被阅读0次

    1,首先建立MySQL数据库:

    drop database if EXISTS jdbc;
    CREATE database if not EXISTS jdbc;
    use jdbc;
    
    drop table if exists user;
    create table if not EXISTS user(
            id int(11) PRIMARY KEY NOT NULL auto_increment,
            name VARCHAR(50) NOT NULL,
            pwd VARCHAR(50) NOT NULL
    );
    
    insert into user(name,pwd) values ('赵1' ,'123456' );
    insert into user(name,pwd) values ('钱2' ,'123456' );
    insert into user(name,pwd) values ('孙3' ,'123456' );
    insert into user(name,pwd) values ('李21' ,'123456' );
    insert into user(name,pwd) values ('周22' ,'123456' );
    insert into user(name,pwd) values ('吴23' ,'123456' );
    insert into user(name,pwd) values ('郑31' ,'123456' );
    insert into user(name,pwd) values ('王32' ,'123456' );
    insert into user(name,pwd) values ('冯33' ,'123456' );
    

    2,导包:


    image.png

    3,设计结构框架:


    image.png

    4,编程:

    User类,用于存放用户信息,和数据库里的参数对应。

    package com.zhu.bean;
    
    /**
     * Created by Think on 2018/7/12.
     */
    public class User {
        private int id;
        private String name;
        private String pwd;
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", pwd='" + pwd + '\'' +
                    '}';
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPwd() {
            return pwd;
        }
    
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    }
    

    Users类,用户后续包装json对象。

    package com.zhu.bean;
    
    import java.util.List;
    
    /**
     * Created by Think on 2018/7/12.
     */
    public class Users {
        List<User> userlist;
        private int total;
    
        public int getTotal() {
            return total;
        }
    
        public void setTotal(int total) {
            this.total = total;
        }
    
        public List<User> getUserlist() {
            return userlist;
        }
    
        public void setUserlist(List<User> userlist) {
            this.userlist = userlist;
        }
    }
    

    IUserDao接口类,用户实现UserDao类,使用接口可以在以后的开发中方便转换成实现其他类,比较灵活。

    package com.zhu.dao;
    
    import com.zhu.bean.User;
    
    import java.util.List;
    
    /**
     * Created by Think on 2018/7/12.
     */
    public interface IUserDao {
        int getUserCount();
        List<User> getPagedUsers(int pageIndex, int pageSize);
    }
    

    UserDao类,用户实现两个重要的方法。

    package com.zhu.dao;
    
    import com.zhu.bean.User;
    import com.zhu.util.JDBCUtils;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by Think on 2018/7/12.
     */
    public class UserDao implements IUserDao {
        @Override
        public int getUserCount() {
            Connection connection = JDBCUtils.getConnection();//连接数据库
            int total = 0;
            try {
                PreparedStatement preparedStatement = connection.prepareStatement("select count(*) as num from user");
    
                ResultSet resultSet = preparedStatement.executeQuery();
                if (resultSet.next())
                {
                    total = resultSet.getInt("num");
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            return total;//返回查询到的值
        }
    
        @Override
        public List<User> getPagedUsers(int pageIndex, int pageSize) {
            Connection connection = JDBCUtils.getConnection();
            List<User> list = new ArrayList<>();
            try {
                PreparedStatement preparedStatement = connection.prepareStatement("select * from user limit ?,?");
                preparedStatement.setInt(1,pageIndex*pageSize);
                preparedStatement.setInt(2,pageSize);
    
                ResultSet resultSet = preparedStatement.executeQuery();
                while (resultSet.next())
                {
                    User user = new User();
                    user.setId(resultSet.getInt("id"));
                    user.setName(resultSet.getString("name"));
                    user.setPwd(resultSet.getString("pwd"));
    
                    list.add(user);//将该页的每一个用户加入到list里
                }
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            return list;//返回该页的用户list
        }
    }
    

    Filter01encoding,用来过滤的filter,主要是破译中文编码。

    package com.zhu.filter;
    
    import javax.servlet.*;
    import javax.servlet.annotation.WebFilter;
    import java.io.IOException;
    
    /**
     * Created by Think on 2018/7/13.
     */
    @WebFilter(filterName = "Filter01-encoding",urlPatterns = "*.do")
    public class Filter01encoding implements Filter {
        public void destroy() {
        }
    
        public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
            req.setCharacterEncoding("utf-8");//request请求行中文解码
            resp.setContentType("text/html;charset=utf-8");//response反馈行中文解码
            chain.doFilter(req, resp);
        }
    
        public void init(FilterConfig config) throws ServletException {
    
        }
    
    }
    

    pageServlet服务器,用来处理页面请求。

    package com.zhu.servlet;
    
    import com.alibaba.fastjson.JSON;
    import com.zhu.bean.User;
    import com.zhu.bean.Users;
    import com.zhu.dao.IUserDao;
    import com.zhu.dao.UserDao;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.List;
    
    /**
     * Created by Think on 2018/7/12.
     */
    @WebServlet(name = "pageServlet",urlPatterns = "/page.do")
    public class pageServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            int pageIndex = Integer.parseInt(request.getParameter("pageIndex"));//jsp页面发送来的参数,?后面带来的参数
            int pageSize = Integer.parseInt(request.getParameter("pageSize"));
    
            IUserDao iUserDao = new UserDao();//定义接口,实例化为UserDao
            int count = iUserDao.getUserCount();
            List<User> userList = iUserDao.getPagedUsers(pageIndex,pageSize);
    
            Users users = new Users();
            users.setUserlist(userList);//用Users类进行包装
            users.setTotal(count);
    
            String json = JSON.toJSONString(users);//转为json字符串
            System.out.println(json);
            response.getWriter().println(json);//将json字符串返回到jsp页面
        }
    }
    

    TestDao测试类,用户测试。

    package com.zhu.test;
    
    import com.zhu.bean.User;
    
    import com.zhu.bean.User;
    import com.zhu.dao.IUserDao;
    import com.zhu.dao.UserDao;
    import org.junit.Test;
    
    import java.util.List;
    
    /**
     * Created by Think on 2018/7/12.
     */
    public class TestDao {
        @Test //这句话Test类一定要加
        public void testCount()
        {
            IUserDao iUserInfoDao = new UserDao();
            int count = iUserInfoDao.getUserCount();
            System.out.println(count);
            List<User> userList = iUserInfoDao.getPagedUsers(1,3);
            for(User user : userList)
            {
                System.out.println(user.toString());
            }
        }
    }
    

    JDBCUtils数据库连接组件,配置url。

    package com.zhu.util;
    
    import java.sql.*;
    
    /**
     * Created by ttc on 2018/6/14.
     */
    public class JDBCUtils {
        private JDBCUtils(){}
        private static Connection con ;
    
        static{
            try{
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=UTF-8";
                String username="root";
                String password="root";
                con = DriverManager.getConnection(url, username, password);
            }catch(Exception ex){
                throw new RuntimeException(ex+"数据库连接失败");
            }
        }
    
        /*
         * 定义静态方法,返回数据库的连接对象
         */
        public static Connection getConnection(){
            return con;
        }
    
    
        public static void close(Connection con,Statement stat){
    
            if(stat!=null){
                try{
                    stat.close();
                }catch(SQLException ex){}
            }
    
            if(con!=null){
                try{
                    con.close();
                }catch(SQLException ex){}
            }
    
        }
    
    
        public static void close(Connection con,Statement stat , ResultSet rs){
            if(rs!=null){
                try{
                    rs.close();
                }catch(SQLException ex){}
            }
    
            if(stat!=null){
                try{
                    stat.close();
                }catch(SQLException ex){}
            }
    
            if(con!=null){
                try{
                    con.close();
                }catch(SQLException ex){}
            }
    
        }
    }
    

    index.jsp文件

    <%--
      Created by IntelliJ IDEA.
      User: Think
      Date: 2018/7/12
      Time: 19:40
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
    <html>
    <head>
      <title>$Title$</title>
      <%--配置css文件--%>
      <link href="mricode.pagination.css" rel="stylesheet">
      <%--必须首先配置jquery--%>
      <script src="jquery-2.1.4.min.js"></script>
      <%--依附于jquery实现,实现分页功能--%>
      <script src="mricode.pagination.js"></script>
      <%--{{}}符号的配置js文件--%>
      <script src="arttemplate.min.js"></script>
      <script>
          window.onload = function () {
              var page = $("#page");//调用id为page的div
              page.pagination({
                  pageIndex: 0,
                  pageSize: 2,
                  showInfo: true,
                  showJump: true,
                  showPageSizes: true,
                  remote:{
                      url:'${pageContext.request.contextPath}/page.do',//进入page.do的服务器
                      success:function (data) {                       //成功返回data数据,服务器中response回应的json
                          var html = template('test',data);//放入id为test的html模板里
                          document.getElementById('content').innerHTML = html;//将该html整体放入id为content的div内
                      }
                  }
              });//json 对象
          }
      </script>
    </head>
    <body>
    <div id="content">
    
    </div>
    
    <%--固定必须有的模块--%>
    <div id="page" class="m-pagination"></div>
    </body>
    </html>
    
    <script id="test" type="text/html">
      <table>
        <thead>
        <tr>
          <td>ID</td>
          <td>姓名</td>
          <td>密码</td>
        </tr>
        </thead>
    
        <tbody>
        {{each userlist as value index}}
        <tr>
          <td>{{value.id}}</td>
          <td>{{value.name}}</td>
          <td>{{value.pwd}}</td>
        </tr>
        {{/each}}
        </tbody>
    
      </table>
    </script>
    

    运行结果:

    image.png
    {"total":9,"userlist":[{"id":1,"name":"赵1","pwd":"123456"},{"id":2,"name":"钱2","pwd":"123456"}]}
    

    相关文章

      网友评论

          本文标题:一个page的项目,fastjson和artTemplate以及

          本文链接:https://www.haomeiwen.com/subject/ruarpftx.html