本文最好是有一定javaweb 基础的人查看,你知道,一些最简单的jdbc的实际操作(CRUD)
如何写出以待用.css,.js的外部模板的jsp页面;
使用最基础的javaweb知识来实现Layuitabled 实现:
你需要知道我们做一个javaweb的基本的包名结构
com
|-gx
|-servlet/web/controller 放 servlet 页面数据,和数据库中的数据之间的比较,代码比较好看懂,,但是里面调用了其它包中的类,方法,需要反向去查看:
|-service 放服务层的接口 interface 接口类 ,只定义了一个含参的方法,服务接口的实现类来调用方法,(该方法参数为用户名+密码);
| |-impl 服务接口的实现类
|-dao // 数据库操作接口// //基础的工具类的接口
| |-impl // 数据库操作接口的实现类// 基础工具类的操作接口的实现类
|-po 数据的实体类 √
|-vo 数据的实体类--你需要什么字段,写什么字段的实体类
|-common /dao 基础的工具类 如对MySQL中数据的查询,新增,修改,删除, 分页 等等,看您个人的需求
|-common /servlet 基础的服务类 查询,新增,修改,删除, 分页 等等 但数据来源于JSP页面传输 数据; 放公共的类
|-filter 过滤器
|-util 放工具类 DbUtil.java jdbc数据库接口的工具类 , MD5Util 密码转化为12进制的开源工具类 Tool 应该是关于日志的;
Dao接口类中的代码
public interface UserMapper {
List getUserList();
//根据ID查询用户
// @Select(" select * from user where id = #{id};")
User getUserById(int Userid);
//增加一个用户
boolean addUser(User user);
//修改用户
boolean updateUser(User user);
//删除一个用户
boolean delectUser(int Userid);
// 连表查询到,,用户表中,用户类型相同的数据;返回表格
public List findPage(String where,int startIndex,int pageSize);
}
Daoimpl实现类代码:
private static String findPage=" SELECT * FROM USER LIMIT ?,?";
@Override
public List findPage(String where, int startIndex, int pageSize) {
// TODO Auto-generated method stub
List listusers=new ArrayList();
User users=new User();
try {
conn=DBUtil.getConnection();
System.out.println("SQL语句查询获取conn参数 ======="+conn);
ps=conn.prepareStatement(findPage);
ps.setInt(1, pageSize);
ps.setInt(2, startIndex);
/*System.out.println(startIndex);
System.out.println(pageSize);*/
rs=ps.executeQuery();
while(rs.next()){
users=new User();
users.setUserID(rs.getInt("userid"));
users.setUserName(rs.getString("username"));
users.setPassword(rs.getString("password"));
users.setUserName(rs.getString("username"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Sql查中关于数据库的错误 ");
}finally{
DBUtil.close(conn, ps, rs);
}
return listusers;
}
}
Serviceimpl实现类的代码:
public class UserServicelmpl implements IUserService{
IUserDao userdao=new UserDaoImpl();
@Override
public List findPage(String where, int startIndex, int pageSize) {
// TODO Auto-generated method stub
return userdao.findPage(null, startIndex, pageSize);
}
Servlet的代码:
/**
*
* 查询分页数据
*/
private void golist(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String strpageSize=req.getParameter("limit");
String strcurPage=req.getParameter("page");
//Bsgridlist 是一个工具类,layuitable 接收数据json格式特意写的一个类
Bsgrid Bsgridlist=new Bsgrid();
//Tools.isNum(strcurPage) && Tools.isNum(strpageSize)想当于一个页面传输来的页数,页码进行一个判断是否为空,为null;
if (Tools.isNum(strcurPage) && Tools.isNum(strpageSize)) {
int pageSize=Integer.parseInt(strpageSize);每页的条数
int curPage=Integer.parseInt(strcurPage);///页码
int startIndex=(curPage-1)*pageSize;
IUserService userService =new UserServicelmpl();
List usertype=userService.findPage(null,pageSize,startIndex);
int count=userService.getTotalRow(null);
for(User user:usertype){
System.out.println(" 遍历循环出查询的list "+usertype);
}
Bsgridlist.count = count;
Bsgridlist.data = usertype;
}
resp.setCharacterEncoding("utf-8");
//JSONObjet 这个是一个对数据进行json数据格式转换的架包:
//也i可以直接使用Map 对数据进行处理,如果使用Map,就不用特意使用一个Bsgridlist的工具类 了;
/* Map jsonmap=new HashMap();
jsonmap.put("code",0);
jsonmap.put("data",NecUserMapper);
jsonmap.put("count",cont);
jsonmap.put("msg","查询成功");
System.out.println(jsonmap);*/
JSONObject jsonObjece=JSONObject.fromObject(Bsgridlist);
System.out.println(jsonObjece);
PrintWriter out =resp.getWriter();
out.write(jsonObjece.toString());
out.close();
}
效果图如下: