【MyBatis】MyBatis+SpringMVC+EasyUI整合分页
来源:互联网 发布:会员生日提醒软件 编辑:程序博客网 时间:2024/06/06 16:30
一、介绍
环境:MyBatis 3.0.x+Spring 3.0.x+EasyUI
采用SpringMVC+MyBatis框架整合的分页Demo,用的是首页这个:http://www.jeasyui.com/demo/main/index.php
Demo结构如下:
再看一下效果:
二、项目详解:
前提是首先把所有的jar包导入进入,不管是用Maven或者手动都可以。
1、首先建立javabean,User.java:
package com.bee.po;public class User {private int id;private String name;private String password;private String sex;private int age;private String address;@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", password=" + password+ ", sex=" + sex + ", age=" + age + ", address=" + address+ "]";}//省略setter和getter方法}顺带着把数据库也建立了
2、然后建立dao层接口类,UserMapper以及UserMapper.xml(因为MyBatis是接口编程,只需要实现mapper而不用实现dao接口)
UserMapper.java:
package com.bee.dao;import java.util.List;import com.bee.po.User;public interface UserMapper {/** * 通过姓名查找用户 * @param name 用户名 * @return 返回用户对象 */public User findUserByName(String name);/** * 查询所有用户,显示列表 */public List<User> findUsersList();/** * 根据页数和记录数,返回记录 */public List<User> findUsersListByPage(int start,int end);/** * 添加用户 */public void addUser(User user);/** * 修改用户 */public void updateUser(User user);/** * 根据ID删除用户 */public void deleteUser(int id);/** * 插入学生自动生成主键 */public String createStudentAutoKey(User user);}
根据UserMapper接口,我们可以写出映射文件UserMapper.xml(直接写在Dao层了,这样写不是太好):
<?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.bee.dao.UserMapper"><!-- 用户列表List --><resultMap type="User" id="resultListUser"><id column="id" property="id" /><result column="name" property="name" /><result column="password" property="password" /><result column="sex" property="sex" /><result column="address" property="address" /></resultMap><!-- 通过名称查找 --><select id="findUserByName" parameterType="String" resultType="User">select * from user where name=#{name}</select><!-- 查找用户列表 --><select id="findUsersList" resultMap="resultListUser">select * from user</select><!-- 根据页数和记录数返回查找记录 --><select id="findUsersListByPage" resultMap="resultListUser">select * from user limit #{0},#{1}</select><!-- 添加用户 --><insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">insert into user(name,password,sex,age,address)values(#{name},#{password},#{sex},#{age},#{address})</insert><!-- 更新用户 --><update id="updateUser" parameterType="User">update user set <if test="name != null">name=#{name},</if><if test="password != null">password=#{password},</if><if test="sex != null">sex=#{sex},</if><if test="age != null">age=#{age},</if><if test="address != null">address=#{address}</if>where id=#{id}</update><!-- 删除用户 --><delete id="deleteUser" parameterType="int">delete from user where id=#{id}</delete><!-- 插入学生,自动生成主键 --><insert id="createStudentAutoKey" parameterType="User" keyProperty="id"> <selectKey keyProperty="id" resultType="String" order="BEFORE">select user</selectKey>insert into user(id,name,password,sex,age,address) values(#{id},#{name},#{password},#{sex},#{age},#{address})</insert></mapper>接着配置MyBatis的配置文件:Configuration.xml直接写在src根下边了:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><typeAliases><!-- 给实体类起别名 --><typeAlias type="com.bee.po.User" alias="User"/></typeAliases><!--装载Mapper --><mappers><mapper resource="com/bee/dao/UserMapper.xml" /></mappers></configuration>MyBatis基本上已经配置结束
下边就是要把所有的资源添加到Spring容器中,在src根下配置applicationContext.xml文件:
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- 配置数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=GBK"></property><property name="username" value="root"></property><property name="password" value="123456"></property><property name="defaultAutoCommit" value="true"></property></bean><!-- 配置SqlSessionFactory,注入数据源 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:configuration.xml" /><property name="dataSource" ref="dataSource"></property></bean><!-- 配置Mapper,注入sqlSessionFactory --><bean id="userMapper" class="org.mybatis.spring.MapperFactoryBean"><property name="mapperInterface" value="com.bee.dao.UserMapper"></property><property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean><!-- 配置Service --><bean id="userService" class="com.bee.service.impl.UserServiceImpl"><property name="userMapper" ref="userMapper"></property></bean></beans>写一个测试类,检查下看有没有问题:
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");UserService userService = (UserService) applicationContext.getBean("userService");User user = userService.findUserByName("admin");System.out.println(user.getAddress());
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>NewTestLogin</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- Spring核心容器 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 监听器,自动装配ApplicationContext配置信息 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 设置拦截器,拦截.html类型的请求,并初始化SpringMVC容器 --> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <!-- 增加了一个filter,设定UTF8,防止中文乱码 --> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>配置applicationContext-mvc.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 开启包自动扫描 --><context:component-scan base-package="com.bee.action" /><!-- 开启注解支持 --><mvc:annotation-driven /><!-- 配置viewResolver --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/" /><property name="suffix" value=".jsp" /></bean></beans>配置UserLoginAction.java:
package com.bee.action;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import com.bee.dao.UserMapper;import com.bee.po.User;@Controller@RequestMapping("/user")public class UserLoginAction extends BaseAction{@Autowiredprivate UserMapper userMapper;/** * 登录模块 * @param request * @param model * @return */@RequestMapping("/login")public String userLogin(HttpServletRequest request,Model model){//获得前台传入数据String name = request.getParameter("username");String password = request.getParameter("password");String securityCode = request.getParameter("securityCode");System.out.println("得到登录信息:"+name+" "+password);//获得图片验证码HttpSession session = request.getSession();String value = session.getAttribute("ValidateCode").toString();//根据用户名获得用户对象,通过判断密码、验证码是否正确返回相应视图User user = userMapper.findUserByName(name);if(user != null && user.getPassword().equals(password) && securityCode.equals(value)){return "main/main";}return "index/fail";}/** * 用户列表,根据当前页和记录数 * @param page 当前页 * @param rows 页面记录数 * @param response * @param model * @throws IOException */@RequestMapping("/userList")public void userList(int page,int rows,HttpServletResponse response,Model model) throws IOException{response.setContentType("application/json; charset=utf-8");//求得开始记录与结束记录int start = (page-1)*rows;int end = page * rows;//把总记录和当前记录写到前台int total = userMapper.findUsersList().size();List<User> uList = userMapper.findUsersListByPage(start, end);this.toBeJson(uList, total, response);}/** * 新建用户 */@RequestMapping("/zengjiaUser")public void addUser(HttpServletRequest request,User user){System.out.println(user.getAddress());userMapper.addUser(user);}/** * 删除用户 */@RequestMapping("/deleteUser")public void deleteUser(HttpServletRequest request){String id = request.getParameter("id");userMapper.deleteUser(Integer.parseInt(id));}/** * 编辑用户 * @throws UnsupportedEncodingException */@RequestMapping("/updateUser")public void updateUser(HttpServletRequest request,User user) throws UnsupportedEncodingException{userMapper.updateUser(user);}}然后在前台使用EasyUI的库:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>用户信息列表</title><link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/easyui/themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/easyui/themes/icon.css"><link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/easyui/themes/color.css"><link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/easyui/demo/demo.css"><script type="text/javascript" src="<%=request.getContextPath() %>/easyui/jquery.min.js"></script><script type="text/javascript" src="<%=request.getContextPath() %>/easyui/jquery.easyui.min.js"></script><style type="text/css"> #fm{ margin:0; padding:10px 30px; } .ftitle{ font-size:14px; font-weight:bold; padding:5px 0; margin-bottom:10px; border-bottom:1px solid #ccc; } .fitem{ margin-bottom:5px; } .fitem label{ display:inline-block; width:80px; } .fitem input{ width:160px; } </style></head><body> <h2>用户信息列表</h2> <p>You can add User,or Edit_User、Delete_User if you selected an user</p> <table id="dg" title="用户操作" class="easyui-datagrid" style="width:700px;height:250px" url="<%=request.getContextPath()%>/user/userList.html" toolbar="#toolbar" pagination="true" rownumbers="true" fitColumns="true" singleSelect="true"> <thead> <tr > <th field="id" width="30" >用户ID</th> <th field="name" width="50">姓名</th> <th field="sex" width="30">性别</th> <th field="age" width="30">年龄</th><th field="address" width="70">家庭住址</th> </tr> </thead> </table> <div id="toolbar"> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">新建用户</a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">编辑</a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">删除</a> </div> <div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px" closed="true" buttons="#dlg-buttons"> <div class="ftitle">用户信息</div> <form id="fm" method="post" novalidate> <div class="fitem"> <label>用户ID:</label> <input name="id" class="easyui-textbox" required="true" > </div> <div class="fitem"> <label>姓名:</label> <input name="name" class="easyui-textbox" required="true"> </div> <div class="fitem"> <label>密码:</label> <input name="password" type="password" class="easyui-textbox" required="true"> </div> <div class="fitem"> <label>性别:</label> <input name="sex" class="easyui-textbox" required="true"> </div> <div class="fitem"> <label>年龄:</label> <input name="age" class="easyui-textbox" required="true"> </div><div class="fitem"> <label>家庭住址:</label> <input name="address" class="easyui-textbox" required="true"> </div> </form> </div> <div id="dlg-buttons"> <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="saveUser()" style="width:90px">保存</a> <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')" style="width:90px">取消</a> </div> <script type="text/javascript"> var url_pattern; function editUser(){ var row = $('#dg').datagrid('getSelected'); if (row){ $('#dlg').dialog('open').dialog('setTitle','Edit User'); $('#fm').form('load',row); url_pattern = '<%=request.getContextPath()%>/user/updateUser.html'; } } function newUser(){ $('#dlg').dialog('open').dialog('setTitle','New User'); // $('#fm').form('clear'); url_pattern = '<%=request.getContextPath()%>/user/zengjiaUser.html'; } function saveUser(){ $('#fm').form('submit',{ url: url_pattern, onSubmit: function(){ return $(this).form('validate'); }, success: function(result){ $('#dlg').dialog('close'); // close the dialog $('#dg').datagrid('reload'); // reload the user data } }); } function destroyUser(){ var row = $('#dg').datagrid('getSelected'); if (row){ $.messager.confirm('Confirm','确定要删除这个用户么?',function(r){ if (r){ $.post('<%=request.getContextPath()%>/user/deleteUser.html',{id:row.id},function(result){ $('#dg').datagrid('reload'); },'json'); } $('#dg').datagrid('reload'); }); } } </script></body></html>
源代码地址:
http://download.csdn.net/download/u010800530/8961287
0 0
- 【MyBatis】MyBatis+SpringMVC+EasyUI整合分页
- 【MyBatis】MyBatis+SpringMVC+EasyUI整合分页
- springmvc+mybatis+easyui分页
- springmvc+mybatis+easyui分页
- Spring+SpringMVC+mybatis+easyui整合实例(五)使用mybatis拦截器分页
- Spring+SpringMVC+mybatis+easyui整合实例----使用mybatis拦截器分页
- Spring+SpringMVC+mybatis+Jquery easyUI框架整合
- MyBatis+springMVC+easyUI (dataGirl)实现分页
- springmvc整合mybatis分页代码示例
- Spring+SpringMVC+mybatis+easyui整合实例-----easyUI界面部分
- springmvc+mybatis整合springmvc
- mybatis+easyui分页
- mybatis+easyUI实现分页
- easyui 分页 + mybatis 分页插件 PageHelper 完成分页显示功能(SpringMVC + mybatis 框架)
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试
- Android 圆弧形进度条 自定义View
- Android 圆弧形进度条 自定义View
- IOS 如何更改导航栏样式及状态栏字体颜色(导航栏背景、前景、标题及返回字体颜色)
- 开源 java CMS - FreeCMS2.3会员站内信
- SDUToj1252进制转换
- 【MyBatis】MyBatis+SpringMVC+EasyUI整合分页
- HDU1869 六度分离(Floyd算法)
- HDU - 4545魔法串最长公共子序列
- LeetCode 之 Jump Game(贪心算法)
- 关于写博客
- Python笔记:weakref模块
- 架构师速成6.14-开发框架-异常处理
- lua-把table中的元素按照key的ascii码升序排序并组装成key-value的xml格式
- 九度1522(OJ)有问题