`

SpringMVC3.0+MyIbatis3.0(分页示例)

    博客分类:
  • J2EE
阅读更多
参考资料
1 ibatis2.x与mybatis(ibatis3.x)的比较
http://zhaohe162.blog.163.com/blog/static/382167972011111114742371/
2 MyBatis学习 之 三、动态SQL语句
http://limingnihao.iteye.com/blog/782190
主要使用Oracle的三层sql实现分页!
一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5
二 工程相关图片:
1 DEMO图片

2 工程代码图片

3 相关jar包图片

三 此示例是在:
SSI:SpringMVC3+Mybatis3(登录及CRUD操作)基础上加的分页功能:
http://liuzidong.iteye.com/blog/1051760
四 主要代码文件
1 BaseController.java用于子类调用方便
package com.liuzd.ssm.web;

import javax.servlet.http.HttpServletRequest;

import com.liuzd.page.Page;
import com.liuzd.page.PageState;
import com.liuzd.page.PageUtil;

/**   
 *Title:     
 *Description:     
 *Copyright: Copyright (c) 2011   
 *Company:http://liuzidong.iteye.com/    
 *Makedate:2011-5-23 下午03:31:03   
 * @author liuzidong   
 * @version 1.0   
 * @since 1.0    
 *   
 */
public class BaseController {
	
	/**
	 * oracel的三层分页语句	
	 * 子类在展现数据前,进行分页计算!	
	 * @param totalCount 根据查询SQL获取的总条数
	 * @param columnNameDescOrAsc 列名+排序方式 : ID DESC or ASC
	 */
	protected Page executePage(HttpServletRequest request,Long totalCount){
		if(null == totalCount){
			totalCount = 0L;
		}
		/**页面状态,这个状态是分页自带的,与业务无关*/
		String pageAction = request.getParameter("pageAction");
		String value = request.getParameter("pageKey");
		
		/**获取下标判断分页状态*/
		int index = PageState.getOrdinal(pageAction);				
		
		Page page = null;		
		/**
		 * index < 1 只有二种状态
		 * 1 当首次调用时,分页状态类中没有值为 NULL 返回 -1
		 * 2 当页面设置每页显示多少条: index=0,当每页显示多少条时,分页类要重新计算
		 * */
		Page sessionPage = getPage(request);
		
		if(index < 1){			
			page = PageUtil.inintPage(totalCount,index,value,sessionPage);
		}else{				
			page = PageUtil.execPage(index,value,sessionPage);
		}		
		setSession(request,page);	
		return page;
	}	
	
	private Page getPage(HttpServletRequest request) {
		Page page = (Page)request.getSession().getAttribute(PageUtil.SESSION_PAGE_KEY);
		if(page == null){
			page = new Page();
		}
		return page;		
	}	
	
	private void setSession(HttpServletRequest request,Page page) {
		request.getSession().setAttribute(PageUtil.SESSION_PAGE_KEY,page);		
	}	

}

2 UserController.java

package com.liuzd.ssm.web;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

import com.liuzd.page.Page;
import com.liuzd.ssm.entity.User;
import com.liuzd.ssm.service.UserService;

@Controller
@RequestMapping("/user")
@SessionAttributes("userList")
public class UserController extends BaseController{
	
	private UserService userService;
	

	public UserService getUserService() {
		return userService;
	}
	
	@Resource
	public void setUserService(UserService userService) {
		this.userService = userService;
	}	

	
	@RequestMapping("/userList")
	public ModelAndView userList(HttpServletRequest request){
		Map<String,Object> params = new HashMap<String,Object>();
		//添加查询条件
		// ... params.put("name","jack");...
		
		//获取总条数
		Long totalCount = this.getUserService().pageCounts(params);
		//设置分页对象
		Page page = executePage(request,totalCount);		
		//如排序
		if(page.isSort()){
			params.put("orderName",page.getSortName());	
			params.put("descAsc",page.getSortState());
		}else{
			//没有进行排序,默认排序方式
			params.put("orderName","age");	
			params.put("descAsc","asc");
		}
		//压入查询参数:开始条数与结束条灵敏
		params.put("startIndex", page.getBeginIndex());
		params.put("endIndex", page.getEndinIndex());
		
		ModelAndView mv = new ModelAndView();		
		//查询集合		
		List<User> users = this.getUserService().pageList(params);
		mv.addObject("userList",users);				
		mv.setViewName("userList");			
		return mv;
	}
}	

3 UserMapper.java
package com.liuzd.ssm.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.RowBounds;

import com.liuzd.ssm.entity.User;

public interface UserMapper{
	
	// .....	
	public List<User> pageList(Map<String,Object> params);
	//分页总条数
	public Long pageCounts(Map<String,Object> p);
	
}


4 UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liuzd.ssm.mapper.UserMapper">  	

   <resultMap type="com.liuzd.ssm.entity.User" id="userMap">
   	 <id property="id" column="id"/>
   	 <result property="name" column="name"/>
   	 <result property="age" column="age"/>
   	 <result property="sex" column="sex"/>
   	 <result property="address" column="address"/>
   	 <result property="password" column="password"/>   	 
   </resultMap>  
    <select id="pageList" parameterType="map" resultType="list" resultMap="userMap">   
       
       select ttt.* from(select tt.*,rownum rn from(select * from users
    	<where>     	   
		   <if test="name != null and name != ''">
		       <!-- 
		          特别提醒一下, $只是字符串拼接, 所以要特别小心sql注入问题。
		          在开发时使用: $,方便调试sql,发布时使用: #
		         and name like #{name},
		       -->
		       and name like '%${name}%' 				   
		   </if>	
		   	<if test="sex != null and sex != ''">
		       and sex = #{sex}  				   
		    </if>    
		 </where>  
		 order by ${orderName} ${descAsc} )tt)ttt
		 <where> 
		   <if test="startIndex != null and startIndex != ''">
		       rn > ${startIndex}  				   
		   </if>	
		   	<if test="endIndex != null and endIndex != ''">		   	   
		         <![CDATA[ and rn <= ${endIndex}  ]]> 			        		   
		    </if>    
		 </where>		 	 
</select>  

<select id="pageCounts" parameterType="map" resultType="long">   
   select count(*) from users 
   <where> 
   <if test="name != null and name != ''">
       and name like #{name}  				   
   </if>	
   	<if test="sex != null and sex != ''">
       and sex = #{sex}  				   
   </if>		       
   </where>  
</select> 

</mapper>

5 userList.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <%@ include file="/common/meta.jsp"%>
  </head>  
  <body>
      <table width="60%" border="1" cellpadding="0" align="center">
			<thead>
				<tr>
					<th style="cursor: hand;" title="按姓名进行排序" onclick="sortPage('name')" valign="top">
						姓名<font color='red'>${page.sortName eq "name" ? page.sortInfo : page.defaultInfo}</font>
					</th>
					<th style="cursor: hand;" title="按年龄进行排序" onclick="sortPage('age')" valign="top">
						年龄<font color='red'>${page.sortName eq "age" ? page.sortInfo : page.defaultInfo}</font>
					</th>
					<th style="cursor: hand;" title="按性别进行排序" onclick="sortPage('sex')" valign="top">
						性别<font color='red'>${page.sortName eq "sex" ? page.sortInfo : page.defaultInfo}</font>
					</th>
					<th style="cursor: hand;" title="按地址进行排序" onclick="sortPage('address')" valign="top">
						地址<font color='red'>${page.sortName eq "address" ? page.sortInfo : page.defaultInfo}</font>
					</th>
					<th style="cursor: hand;" >
						操作
					</th>
				</tr>
			</thead>
			<tbody>			

				<c:forEach items="${userList}" var="user">
					<tr align="center">
						<td>
							${user.name}
						</td>
						<td>
							${user.age}
						</td>
						<td>
							${user.sex eq 1 ? "男" : user.sex eq 2 ? "女" : "未知"}
						</td>
						<td>
							${user.address}
						</td>
						<td>
							<a
								href="${pageContext.request.contextPath}/user/toAddUser.do">添加</a>
							|
							<a
								href="${pageContext.request.contextPath}/user/getUser/${user.id}.do">编辑</a>
							|
							<a
								href="${pageContext.request.contextPath}/user/delUser/${user.id}.do">删除</a>
						</td>
					</tr>
				</c:forEach>
				<jsp:include page="/page/page.jsp">
					<jsp:param name="url" value="user/userList.do" />					
				</jsp:include>
				
			</tbody>
		</table>
		<br>
		<a href="${pageContext.request.contextPath}/index.jsp">返回</a>		
  </body>
</html>

6 page.jsp,此页面你不用关心,只管引用就行了
<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>
<c:set var="page" value="${sessionScope.page}" />
<c:set var="path" value="${pageContext.request.contextPath}" />
<c:set var="url" value="${param.url}" />
<c:set var="urlParams" value="${param.urlParams}" />
<c:set var="pathurl" value="${path}/${url}" />
<tr>
	<td colspan="5">
		共${page.totalCount}条记录 共${page.totalPage}页 每页显示${page.everyPage}条
		当前第${page.currentPage}页&nbsp;
		<c:choose>
			<c:when test="${page.hasPrePage eq false}">
 			    &lt&lt首页&nbsp;&lt上页&nbsp;
 			</c:when>
			<c:otherwise>
				<a href="${pathurl}?&pageAction=first${urlParams}">&lt&lt首页&nbsp;</a>&nbsp;
				<a href="${pathurl}?pageAction=previous${urlParams}" />&lt上一页</a>
			</c:otherwise>
		</c:choose>
		&nbsp;||&nbsp;
		<c:choose>
			<c:when test="${page.hasNextPage eq false}">
 			    &nbsp;下页&gt&nbsp;尾页&gt&gt
 			</c:when>
			<c:otherwise>
				<a href="${pathurl}?&pageAction=next${urlParams}">下一页&gt&nbsp;</a>&nbsp;
				<a href="${pathurl}?pageAction=last${urlParams}" />末页&gt&gt</a>
			</c:otherwise>
		</c:choose>
		&nbsp;
		<SELECT name="indexChange" id="indexChange"
			onchange="getCurrentPage(this.value);">
			<c:forEach var="index" begin="1" end="${page.totalPage}" step="1">
				<option value="${index}" ${page.currentPage eq index ? "selected" : ""}>
					第${index}页
				</option>
			</c:forEach>
		</SELECT>
		&nbsp;
		每页显示:<select name="everyPage" id="everyPage" onchange="setEveryPage(this.value);">
			       <c:forEach var="pageCount" begin="5" end="${page.totalCount}" step="5">			       	    
						<option value="${pageCount}" ${page.everyPage eq pageCount ? "selected" : ""}>
							${pageCount}条
						</option>
					</c:forEach>
		       </select>
	</td>
</tr>
<div style='display: none'>
	<a class=listlink id="indexPageHref" href='#'></a>
</div>
<script>
function getCurrentPage(index){	
	var a = document.getElementById("indexPageHref");	
	a.href = '${pathurl}?pageAction=gopage&pageKey='+index+'${urlParams}';        
    a.setAttribute("onclick",'');          
    a.click("return false");   
}
function setEveryPage(everyPage){	
	var a = document.getElementById("indexPageHref");
	var currentPage = document.getElementById('indexChange').value;
	a.href = '${pathurl}?pageAction=setpage&pageKey='+everyPage+'${urlParams}';       
    a.setAttribute("onclick",'');          
    a.click("return false");   
}
function sortPage(sortName){	
	var a = document.getElementById("indexPageHref");	
	a.href = '${pathurl}?pageAction=sort&pageKey='+sortName+'${urlParams}';      
    a.setAttribute("onclick",'');      
    a.click("return false");   
}
</script>

  • 大小: 25.2 KB
  • 大小: 60.9 KB
  • 大小: 25.2 KB
分享到:
评论
12 楼 zhangsenhao 2017-02-16  
非常赞!
代码很清楚
11 楼 xiamw2000 2016-12-26  
分页写得不对,应该是 :
order by ${orderName} ${descAsc} )tt
         <where>  
           <if test="startIndex != null and startIndex != ''"> 
               rn > ${startIndex}   )ttt                   
           </if>   
            <if test="endIndex != null and endIndex != ''">               
                 <![CDATA[ and rn <= ${endIndex} ]]>                              
            </if>     
         </where>          
10 楼 flyflyfly123 2016-01-13  
你好,为什么共37条记录,每页显示10条,点击末页还是10条数据,不是应该7条吗
9 楼 巴比奇 2015-11-29  
8 楼 F_Clover 2013-09-24  
page包下的类没有呢!楼主能贴出来吗?谢谢了
7 楼 liuzidong 2011-11-15  
不好意思呀,最近天天加班呀,没时间!重点是你要找出问题所在并修复它
6 楼 angelxmm326 2011-11-14  
朋友最近忙?没有回复了啊!
5 楼 angelxmm326 2011-11-10  
不客气,不过你给的源码还是有问题,界面是这样的,不能截图,我把界面的元素贴上来吧:
姓名  年龄  性别  地址  操作 
bbb  23  男  北京大学  添加 | 编辑 | 删除 
ccc  23  男  北京大学  添加 | 编辑 | 删除 
bbb  23  男  北京大学  添加 | 编辑 | 删除 
ccc  23  男  北京大学  添加 | 编辑 | 删除 
ddd  23  男  北京大学  添加 | 编辑 | 删除 
eee  23  男  北京大学  添加 | 编辑 | 删除 
fff  23  男  北京大学  添加 | 编辑 | 删除 
bbb1  23  男  北京大学  添加 | 编辑 | 删除 
ccc1  23  男  北京大学  添加 | 编辑 | 删除 
bbb1  23  男  北京大学  添加 | 编辑 | 删除 
ccc1  23  男  北京大学  添加 | 编辑 | 删除 
ddd1  23  男  北京大学  添加 | 编辑 | 删除 
eee1  23  男  北京大学  添加 | 编辑 | 删除 
fff1  23  男  北京大学  添加 | 编辑 | 删除 
共条记录 共页 每页显示条 当前第页  <<首页   <上一页  ||  下一页>   末页>>      每页显示: 

注意最下面没有效果,也就是说:共条记录 共页 每页显示条 当前第页  <<首页   <上一页  ||  下一页>   末页>>      每页显示:  这些都没有出数,

如果点击下一页的话,后台报错信息为:
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.liuzd.page.Page.getHasNextPage(Page.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:37)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
at org.apache.jsp.page.page_jsp._jspx_meth_c_005fwhen_005f1(page_jsp.java:428)
at org.apache.jsp.page.page_jsp._jspx_meth_c_005fchoose_005f1(page_jsp.java:398)
at org.apache.jsp.page.page_jsp._jspService(page_jsp.java:113)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
at org.apache.jsp.WEB_002dINF.jsp.userList_jsp._jspService(userList_jsp.java:121)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
2011-11-10 9:33:07 org.apache.catalina.core.ApplicationDispatcher invoke

感觉还是您的page.java类有些错误,我会持续关注
4 楼 liuzidong 2011-11-07  
谢谢您的关注
1 UserService.java如下
package com.liuzd.ssm.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.RowBounds;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.liuzd.ssm.entity.User;
import com.liuzd.ssm.mapper.UserMapper;

@Service("userService")
public class UserService {
		
	@Autowired
	private UserMapper userMapper;	

	public void addUser(User user) {
		this.userMapper.addUser(user);	
	}
	
	public int checkUserExits(User user) {			
		return this.userMapper.checkUserExits(user);		
	}

	public void delUser(String userId) {
		this.userMapper.delUser(userId);
	}


	public User getUserByUid(String userId) {		
		return (User)this.userMapper.getUserByUid(userId);
	}
	
	public List<User> getUserByUids(List<String> classList) {		
		return this.userMapper.getUserByUids(classList);
	}

	public List<User> getUserList() {		
		return (List<User>)this.userMapper.getUserList();
	}	
	
	public List<User> getUserListByQuery(Map map) {		
		return (List<User>)this.userMapper.getUserListByQuery(map);
	}	
	
	public List<User> getUserListByQueryUser(User user) {		
		return (List<User>)this.userMapper.getUserListByQueryUser(user);
	}	

	public void editUser(User user) {		
		this.userMapper.editUser(user);
	}
	
	public Long getCounts(){
		return this.userMapper.getCounts();
	}	
	
	
	public List<Object[]> getUserDynamicSql(Object [] objs,RowBounds rw){
		return this.userMapper.getUserDynamicSql(objs, rw);
	}
	
	public List<User> pageList(Map<String,Object> params,RowBounds rw){
		return this.userMapper.pageList(params, rw);
	}
	
	public List<User> pageList(Map<String,Object> params){
		return this.userMapper.pageList(params);
	}
	
	public Long pageCounts(Map<String,Object> p){
		return this.userMapper.pageCounts(p);
	}
}

2 已上传了工程,没有.jar,太大了,你可参考其它工程,我作了.jar的上传。
3 已上传了simplePage.jar,工程中也在相关源代码,把它放入lib就可使用了
3 楼 angelxmm326 2011-11-07  
1:您没有给出UserService 中的pageCounts方法和pageList方法的定义,虽然比较简单,但你也要说明;
2:还有您给的源代码下载不对吧,simplePage.jar只有class文件,ssi-lib.7z只有lib包,没源代码;
3:能留个IM联系方式吗,我的QQ是:158917225。
2 楼 liuzidong 2011-11-04  
什么地方呀,我测试是没问题,正常的,
1 楼 angelxmm326 2011-11-04  
代码有些不对

相关推荐

    SpringMVC3.0+MyIbatis3.0(分页示例

    本示例聚焦于如何在SpringMVC 3.0和MyBatis 3.0环境中实现分页功能,这在处理大量数据时尤其重要,能够提高用户体验并减轻服务器压力。 **SpringMVC 3.0** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-...

    springMVC3.0 + MyBatis3.1 整合

    springMVC3.0 + MyBatis3.1 花了2天整合成功的DEMO Spring 用的是基于注解的 MyBatis 用的是基于XML的 带表结构 有增删改查的小例子(含事务) 个人认为这套小框架有有兴趣的人 完全可以自己修改修改, 作为自己以后...

    MyEclipse8.6+SpringMVC3.0+Hibernate3.3环境搭建.doc

    本教程主要讲解如何使用MyEclipse8.6集成开发环境来搭建一个基于SpringMVC3.0和Hibernate3.3的Web应用环境,这对于初学者来说是非常实用的。下面我们将详细地分解每个步骤。 首先,我们从创建Web Project项目开始:...

    SpringMvc3+MyIbatis3

    在SpringMvc+MyIbatis的项目中,web.xml文件是整个Web应用的入口,是必须要配置的。在web.xml中,需要配置log4j监听器、Spring监听器和SpringMVC监听器等组件。log4j监听器用于初始化日志系统,Spring监听器用于加载...

    SpringMVC3.0+Hibernate3.0+jQuery+Mysql实现登录注册(完整版)

    在本项目中,我们主要探讨的是如何利用SpringMVC 3.0、Hibernate 3.0、jQuery和MySQL来构建一个完整的登录注册系统。这个系统不仅涵盖了后台的业务逻辑处理,还包括了前端的用户交互与数据验证。下面将分别详细介绍...

    springMVC4.1+EJB3.0+easyUI整合ear项目

    《SpringMVC 4.1 + EJB 3.0 + EasyUI 整合EAR项目:构建高效分布式系统的关键技术》 在当前的企业级应用开发中,为了实现高性能、高可扩展性和高可维护性的系统,开发者往往需要采用一系列先进的技术和框架进行整合...

    Spring + SpringMVC + Myibatis + Druid 整合源码

    Spring + SpringMVC + Myibatis + Druid 整合源码,修改log4j.properties中log4j.appender.A1.File=YOUR-LOG-PATH,log4j.appender.FILE.File=YOUR-LOG-FILE

    Springboot Spring+SpringMVC+Mybatis+Thymeleaf3.0+Druid 框架

    Springboot Spring+SpringMVC+Mybatis+Thymeleaf3.0+Druid 有增删改查,有监控http://localhost:8080/druid/login.html 账号 root 密码 123

    MyEclipse8.6+SpringMVC3.0+Hibernate3.3环境搭建

    资源有用没用因人而异,希望对需要的人多少能有些帮助吧...

    springmvc4.0+mybatis3.0+log4j整合.rar

    本项目“springmvc4.0+mybatis3.0+log4j整合.rar”是一个典型的Java Web项目示例,展示了如何将SpringMVC 4.0、MyBatis 3.0和Log4j有效地集成在一起,实现高效、可控的Web应用开发。通过对这些核心组件的理解和实践...

    SpringMvc+Servlet3.0+tomcat 整合源码。

    SpringMvc+Servlet3.0+tomcat 整合源码

    springmvc4.2+mybatis3.0+jboss

    总的来说,"springmvc4.2+mybatis3.0+jboss"这个项目组合提供了一种高效、可维护的Java Web开发方式,利用Spring MVC的MVC架构,MyBatis的数据持久层能力,以及JBoss的运行环境,共同构建出强大的企业级应用。

    myeclipse 实现框架 spring+springmvc+springsecurity+myibatis+mysql用户认证和人员增删改查

    myeclipse 利用框架 spring+springmvc+springsecurity+myibatis+mysql 实现用户认证和人员增删改查的demo 1.用户认证库与人员管理库是同一个库,我这里为了方便配置文件区别为datasource和securitydatasource 2.这...

    springMVC+Myibatis框架整合实例

    SpringMVC和MyBatis是两个非常流行的Java Web开发框架,它们在企业级应用中广泛使用。SpringMVC作为Spring框架的一部分,主要负责处理HTTP请求并返回响应,而MyBatis则是一个轻量级的持久层框架,专注于SQL映射和...

    springMVC+springSecurity3.0+maven

    标题 "springMVC+springSecurity3.0+maven" 指的是一个集成项目,它结合了Spring MVC、Spring Security 3.0和Maven这三个关键的Java开发工具和技术。让我们逐一深入理解这些技术及其相互之间的关系。 首先,Spring ...

    springMVC+myibatis的maven项目架构

    综上所述,"springMVC+myibatis的maven项目架构"是一个完整的Java Web解决方案,它利用SpringMVC处理Web请求,MyBatis负责数据访问,而Maven确保了项目的构建和依赖管理。此外,项目还提供了实用的Word和Excel工具类...

    springmvc+mybatis+easyUI分页后台代码

    本项目是基于SpringMVC、MyBatis和EasyUI这三大框架实现的后台分页功能,旨在提供一个高效、易用的解决方案。下面将详细介绍这三个技术以及它们如何协同工作来实现前端页面的分页。 首先,SpringMVC是Spring框架的...

Global site tag (gtag.js) - Google Analytics