首先创建数据库,这里我就不写了,
先看一下效果图
废话不多说,直接上代码。
页面我用的是layui框架,这里的页面就不全写出来了,直接上重点部分
<script>
layui.use('table', function(){
var table = layui.table;
table.render({
elem: '#test'
<!-- url:获取数据的路径-->
,url:'userPage'
<!-- limits:这里的三个参数我还不是很明白,有知道的大佬希望评论数一数-->
,limits: [1,5,10]
<!--limit:参数为每页要显示几条数据 -->
,limit: 1
,toolbar: '#toolbarDemo'
,title: '订单信息表'
,cols: [[
<!--field: '实体类的字段' -->
{field:'uId', width:80, title: '编号', edit: 'text'},
{field:'uName', width:115, title: '订单名称', edit: 'text'},
{field:'uPassword', width:105, title: '时间', edit: 'text'},
{field:'uRealName', width:80, title: '下单人', edit: 'text'},
{field:'eMail', width:120, title: '目的地', edit: 'text'},
{field:'uPhone', width:200, title: '备注', edit: 'text'},
{field:'uAddress', width:200, title: '备注', edit: 'text'},
{
field : 'pic',
title : '管理操作',
width : 120,
style : 'height:100%;max-width:100%;',
toolbar: '#barDemo'
}
]]
,page: true
});
table.on('tool(test)', function(obj){
var data = obj.data;
//console.log(obj)
if(obj.event === 'del'){
layer.confirm('确定取删除吗?', function(index){
$.ajax({
url:'deleted',
type:'get',
data:{'id':data.id},//向服务端发送删除的id
success:function(msg){
if(msg=='success'){
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
layer.close(index);
console.log(index);
layer.msg("操作成功",{icon:1});
}
else{
layer.msg("操作失败",{icon:5});
}
}
});
});
} else if(obj.event === 'edit'){
layer.open({
type: 2 //此处以iframe举例
,
title: '修改信息',
area: ['600px', '550px'],
shade: 0,
maxmin: true,
content:'findidd?id='+data.id,
end:function(){
layui.table.reload('test');//刷新表格
location.reload();//弹出层结束后,刷新主页面
//layer.msg("修改成功",{icon:1});
}
});
}
});
});
layui.use("layer", function(){
var layer = layui.layer;
$("#p1").click(function(){
layer.open({
type: 2,
area: ['500px','300px'],
content:('addd'),
end:function(){
layui.table.reload('test');//刷新表格
location.reload();//弹出层结束后,刷新主页面
//layer.msg("添加成功",{icon:1});
}
});
});
});
function createFormat(d){
return d;
}
</script>
然后就是xml里面的配置
mybatis-config.xml
<?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>
<!-- 配置全局属性 -->
<settings>
<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 使用列别名替换列名 默认:true -->
<setting name="useColumnLabel" value="true" />
<!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- <property name="dialect" value="mysql"/> -->
<property name="offsetAsPageNum" value="false"/>
<property name="rowBoundsWithCount" value="false"/>
<property name="pageSizeZero" value="true"/>
<property name="reasonable" value="false"/>
<property name="supportMethodsArguments" value="false"/>
<property name="returnPageInfo" value="none"/>
</plugin>
</plugins>
</configuration>
webdao.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 1、加载jdbc.properties配置 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 2、配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 3、配置SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 加载mybatis的配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!-- 扫描pojo包 -->
<property name="typeAliasesPackage" value="com.hp.pojo"></property>
<!-- 扫描mapper所需要的xml文件 ,使用xml方式-->
<!-- <property name="mapperLocations" value="classpath:mapper/.xml"></property> -->
</bean>
<!-- 4、配置扫描Dao接口包,注入给spring管理 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<!-- 扫描dao层接口 -->
<property name="basePackage" value="com.hp.mapper"></property>
</bean>
<!-- 5、配置sqlSessionTemplate -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0">
<ref bean="sqlSessionFactory"/>
</constructor-arg>
</bean>
</beans>
webmvc.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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 开启mvc注解驱动 -->
<mvc:annotation-driven conversion-service="conversionService">
<mvc:message-converters>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 默认处理器 -->
<mvc:default-servlet-handler/>
<!-- 开启扫描包,需要去掉service层不进行扫描,可以避免事务失效,但是在service事务配置文件中增加扫描 -->
<context:component-scan base-package="com.hp">
<!-- 配置不需要扫描 service层注解 -->
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Service" />
</context:component-scan>
<!--过滤静态资源,不进行拦截 -->
<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/image/" mapping="/image/**"></mvc:resources>
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
<!-- 分发器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000" />
</bean>
<!-- 配置springMVC拦截器 -->
<!-- <mvc:interceptors>
<mvc:interceptor>
拦截所有请求
<mvc:mapping path="/**"/>
<bean class="com.hp.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors> -->
</beans>
webService.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 扫描 包下所有的注解类型 -->
<context:component-scan base-package="com.hp.service.impl"></context:component-scan>
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
实体类pojo层
package com.hp.pojo;
/**
* 这写注解是下载玩插件才能用--这里我们就用生成的get和set方法就可以了
*@AllArgsConstructor有参构造方法
* @NoArgsConstructor无参构造方法
* @Setter set方法
* @Getter get方法
*
*/
public class User {
private Integer uId;
private String uName;
private String uPassword;
private String uRealName;
private String eMail;
private String uPhone;
private String uAddress;
public Integer getuId() {
return uId;
}
public void setuId(Integer uId) {
this.uId = uId;
}
public String getuName() {
return uName;
}
public void setuName(String uName) {
this.uName = uName;
}
public String getuPassword() {
return uPassword;
}
public void setuPassword(String uPassword) {
this.uPassword = uPassword;
}
public String getuRealName() {
return uRealName;
}
public void setuRealName(String uRealName) {
this.uRealName = uRealName;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public String getuPhone() {
return uPhone;
}
public void setuPhone(String uPhone) {
this.uPhone = uPhone;
}
public String getuAddress() {
return uAddress;
}
public void setuAddress(String uAddress) {
this.uAddress = uAddress;
}
@Override
public String toString() {
return "User{" +
"uId=" + uId +
", uName='" + uName + '\'' +
", uPassword='" + uPassword + '\'' +
", uRealName='" + uRealName + '\'' +
", eMail='" + eMail + '\'' +
", uPhone='" + uPhone + '\'' +
", uAddress='" + uAddress + '\'' +
'}';
}
}
接下来就是Controller层的代码
package com.hp.controller;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.hp.pojo.User;
import com.hp.service.IUserService;
@Controller
public class UserController {
@Resource
private IUserService userService;
@ResponseBody
@RequestMapping("userPage")
public String userPage(@RequestParam("page") Integer pageNum, @RequestParam("limit") Integer pageSize) {
//首先是对pageNum,pageSize进行判断,如果为零就对其进行赋值
if(pageNum==null) {
pageNum = 1;
}
if(pageSize==null) {
pageSize =2;
}
//创建pageInfo对象把实体类user放进去
PageInfo<User> info =new PageInfo<User>();
//把刚刚接收到的数据pageNum,pageSize放进pageInfo对象里面
info.setPageNum(pageNum);
info.setPageSize(pageSize);‘
//调用Service层的方法userPage(info)
PageInfo<User> page= userService.userPage(info);
//创建JSONObject对象
JSONObject object = new JSONObject();
object.put("code", 0);
object.put("msg", "");
object.put("count", page.getTotal());
object.put("data", page.getList());
//把json数据返回到前台页面
return object.toJSONString();
}
}
Service接口的方法
package com.hp.service;
import java.util.List;
import com.github.pagehelper.PageInfo;
import com.hp.pojo.User;
public interface IUserService {
public PageInfo<User> userPage(PageInfo<User> info);
}
Service实现类的方法
package com.hp.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hp.mapper.UserMapper;
import com.hp.pojo.User;
import com.hp.service.IUserService;
@Service
@Transactional
public class UserService implements IUserService{
@Resource
private UserMapper userMapper;
public PageInfo<User> userPage(PageInfo<User> info) {
PageHelper.startPage(info.getPageNum(),info.getPageSize());
List<User> list = userMapper.userPage();
PageInfo<User> page=new PageInfo<User>(list,info.getSize());
return page;
}
}
Mapper层的接口
package com.hp.mapper;
import java.util.List;
import com.github.pagehelper.PageInfo;
import com.hp.pojo.User;
public interface UserMapper {
public List<User> userPage();
}
mapper.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.hp.mapper.UserMapper">
<!-- -->
<select id="userPage" resultType="com.hp.pojo.User">
select * from user
</select>
</mapper>
这样就ok了