file->new->other 搜索maven,
右键项目点击Properties,然后Project Facets
项目结构
创建一张角色表lv_role
CREATE TABLE `lv_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `roleName` varchar(25) DEFAULT NULL COMMENT '名称', `permissions` text, `timeline` int(11) DEFAULT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4;
配置pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>xiangxuan</groupId> <artifactId>xiangxuan-user</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>xiangxuan-user</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <tomcat.version>7.0.90</tomcat.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> </parent> <dependencies> <!-- tomcatjar包 --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-juli</artifactId> <version>${tomcat.version}</version> </dependency> <!-- 单元测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- mybatis整和springboot包statr --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybatis整和springboot 的架--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> <!-- Mysql的驱动架包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- 数据库连接池 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <!-- redis整合springboot 的架包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.3.7.RELEASE</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> </dependency> <!-- mybatis整和springboot包end --> <!--编译jsp的jasper包依赖 statr --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--编译jsp的jasper包依赖 end --> </dependencies> </project>
在src/main/resources文件下
(1)添加一个config文件夹,文件夹中添加SqlMapConfig.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配置,根据需要再加上 --> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> </configuration>
(2)添加Spring Boot 的配置application.properties文件,注意有两种格式.properties 和 .yml,它们的区别主要是书写格式不同
①.properties
app.user.name = javastack
②.yml
app:
user:
name: javastack
我们使用的是.properties这种
mybatis.config-location=classpath:config/SqlMapConfig.xml mybatis.mapper-locations=classpath*:mapper/*Mapper.xml spring.http.multipart.maxFileSize=100Mb spring.http.multipart.maxRequestSize=100Mb #--------c3p0-------------- c3p0.jdbcUrl=jdbc:mysql://localhost:3306/xiangxuan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull c3p0.user=root c3p0.password=root c3p0.driverClass=com.mysql.jdbc.Driver c3p0.minPoolSize=2 c3p0.maxPoolSize=10 c3p0.maxIdleTime=1800000 c3p0.acquireIncrement=3 c3p0.maxStatements=1000 c3p0.initialPoolSize=3 c3p0.idleConnectionTestPeriod=60 c3p0.acquireRetryAttempts=30 c3p0.acquireRetryDelay=1000 c3p0.breakAfterAcquireFailure=false c3p0.testConnectionOnCheckout=false #----------配置项目路径------------ server.context-path=/xiangxuan
#----------配置端口号80------------
server.port=80 #-----------------------配置jsp---------- spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp #-------------------配置redis------------------------ spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= spring.redis.pool.maxActive=80 spring.redis.pool.maxWait=-1 spring.redis.pool.maxIdle=8 spring.redis.pool.minIdle=0 spring.redis.timeout=1000
(3)添加log4j.properties文件
#This is the configuring for logging displayed in the Application Server log4j.rootCategory=WARN,stdout #stdout configure log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= %d %p [%t][%c.%M()][%L] - <%m>%n #cxf configure log4j.appender.cxf=org.apache.log4j.DailyRollingFileAppender log4j.appender.cxf.File=../logs/cxf.log log4j.appender.cxf.layout=org.apache.log4j.PatternLayout log4j.appender.cxf.layout.ConversionPattern= %d %p [%t][%c.%M()][%L] - <%m>%n #third configure log4j.appender.third=org.apache.log4j.DailyRollingFileAppender log4j.appender.third.File=../logs/third.log log4j.appender.third.layout=org.apache.log4j.PatternLayout log4j.appender.third.layout.ConversionPattern= %d %p [%t][%c.%M()][%L] - <%m>%n #fmb-platform-finance-server log4j.appender.financeServer=org.apache.log4j.DailyRollingFileAppender log4j.appender.financeServer.File=../logs/fmb-platform-finance.log log4j.appender.financeServer.layout=org.apache.log4j.PatternLayout log4j.appender.financeServer.layout.ConversionPattern= %d %p [%t][%c.%M()][%L] - <%m>%n #fmb-platform-openapi log4j.appender.openApi=org.apache.log4j.DailyRollingFileAppender log4j.appender.openApi.File=../logs/fmb-platform-openapi.log log4j.appender.openApi.layout=org.apache.log4j.PatternLayout log4j.appender.openApi.layout.ConversionPattern= %d %p [%t][%c.%M()][%L] - <%m>%n #fmb-platform-external log4j.appender.external=org.apache.log4j.DailyRollingFileAppender log4j.appender.external.File=../logs/fmb-platform-external.log log4j.appender.external.layout=org.apache.log4j.PatternLayout log4j.appender.external.layout.ConversionPattern= %d %p [%t][%c.%M()][%L] - <%m>%n # Control logging for 3rd library, changing log level to DEBUG when debug log4j.logger.org.springframework=WARN,third log4j.logger.org.hibernate=WARN,third log4j.logger.net.sf.ehcache=WARN,third log4j.logger.org.apache.cxf=WARN,cxf log4j.logger.org.apache.catalina=WARN,cxf # Changing the log level to DEBUG will display SQL Hibernate generated log4j.logger.org.hibernate.SQL=ERROR,third # fmb platform project log log4j.logger.cn.nnj.platform.external=INFO,financeServer log4j.logger.cn.nnj.openapi=INFO,openApi log4j.logger.cn.nnj.openapi=INFO,external log4j.logger.java.sql.Connection=WARN log4j.logger.java.sql.Statement=WARN log4j.logger.java.sql.PreparedStatement=WARN
在src/main/java文件夹下
(1)Application.java启动类
package org.xiangxuan.user; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main( String[] args ) { SpringApplication.run(Application.class,args); } }
(2)RoleController控制层
package org.xiangxuan.user.controller; import java.util.List; import javax.annotation.Resource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import org.xiangxuan.user.base.BasicResult; import org.xiangxuan.user.entity.Role; import org.xiangxuan.user.service.RoleService; @RequestMapping("role") @Controller public class RoleController { public final Log logger = LogFactory.getLog(this.getClass()); @Resource private RoleService roleService; @RequestMapping(value="/findByAll",method=RequestMethod.POST) @ResponseBody public BasicResult findByAll(Integer pageSize,Integer page) { BasicResult result=new BasicResult(); result.setResult("400"); try { List<Role> list=roleService.findByAll(pageSize, page); if(list==null||list.size()==0){ result.setResult("108"); result.setMessageString("数据不存在"); }else { result.setData(list); result.setResult("100"); result.setMessageString("成功"); } return result; } catch (Exception e) { logger.info("角色列表异常", e); result.setResult("500"); result.setMessageString("失败"); return result; } } @RequestMapping(value="/roleList",method=RequestMethod.GET) public ModelAndView roleList(Integer pageSize,Integer page,ModelAndView model) { BasicResult result=new BasicResult(); result.setResult("400"); try { List<Role> list=roleService.findByAll(pageSize, page); //将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型 model.addObject("rList", list); //放入jsp路径 model.setViewName("role_list"); return model; } catch (Exception e) { logger.info("角色列表异常", e); return model; } } }
(3) bean层Role类
package org.xiangxuan.user.entity; import java.io.Serializable; /** * 角色bean * @author lyy * */ public class Role implements Serializable{ private static final long serialVersionUID = 1L; private int id;//id private String roleName;//角色名称 private String permissions;//权限 private int timeline;//创建时间 private int updateTime;//更改时间 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; } public String getPermissions() { return permissions; } public void setPermissions(String permissions) { this.permissions = permissions; } public int getTimeline() { return timeline; } public void setTimeline(int timeline) { this.timeline = timeline; } public int getUpdateTime() { return updateTime; } public void setUpdateTime(int updateTime) { this.updateTime = updateTime; } }
(4)mapper层 RoleMapper
package org.xiangxuan.user.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.xiangxuan.user.entity.Role; /** * mapper层 * @author lyy * */ @Mapper public interface RoleMapper { @Select("select r.id,r.roleName,r.timeline from lv_role r ORDER BY r.timeline desc LIMIT #{page},#{pageSize}") List<Role> findByAll(@Param("pageSize") Integer pageSize,@Param("page") Integer page); }
(5)service层 RoleService
package org.xiangxuan.user.service; import java.util.List; import org.springframework.stereotype.Service; import org.xiangxuan.user.entity.Role; /** * service层 * @author lyy * */ @Service public interface RoleService { List<Role> findByAll(Integer pageSize,Integer page); }
(6)serviceimpl层 RoleServiceImpl
package org.xiangxuan.user.service; import java.util.List; import org.springframework.stereotype.Service; import org.xiangxuan.user.entity.Role; /** * serviceimpl层 * @author lyy * */ @Service public interface RoleService { List<Role> findByAll(Integer pageSize,Integer page); }
在src/main/java/wabapp/WEB-INF文件下添加jsp文件夹,在jsp文件夹下添加role_list.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Insert title here</title> </head> <body> <table style="border: 1px solid black;"> <tr> <td>角色id</td> <td>角色名称</td> </tr> <c:forEach items="${rList}" var="r"> <tr> <td> ${r.id} <td> <td> ${r.roleName} </td> </tr> </c:forEach> </table> </body> </html>
最终的结果