代码改变世界

Spring Boot 、mybatis 、swagger 和 c3p0 整合

2018-03-09 10:34  甘雨路  阅读(695)  评论(0编辑  收藏  举报

文件路径如下

添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<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>wonder</groupId>
    <artifactId>skyRainbow</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>

        <!--spring boot 的依赖 START-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--spring boot 的依赖 END-->

        <!--mybatis 的依赖 START-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!--mybatis 的依赖 END-->

        <!--mysql 的依赖 START-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--mysql 的依赖 END-->

        <!--jsp 的依赖 START-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!--jsp 的依赖 END-->

        <!--swagger 的依赖 START-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!--swagger 的依赖 END-->

        <!--c3p0 的依赖 START-->
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <!--c3p0 的依赖 END-->

    </dependencies>

    <build>
        <!--配置文件读取路径-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

添加swagger 启动配置文件和c3p0加载文件

package lf.config;


import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import javax.sql.DataSource;

@Configuration
public class DatasourceConfiguration {

    @Bean(name = "dataSource")
    @Qualifier(value = "dataSource")
    @Primary
    @ConfigurationProperties(prefix = "c3p0")
    public DataSource dataSource()
    {
        return DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build();
    }
}
package lf.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.async.DeferredResult;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import static com.google.common.base.Predicates.or;
import static springfox.documentation.builders.PathSelectors.regex;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api_lf(){
        return  new Docket(DocumentationType.SWAGGER_2)
                .groupName("api_lf")
                .genericModelSubstitutes(DeferredResult.class)
                .useDefaultResponseMessages(false)
                .forCodeGeneration(false)
                .pathMapping("/")
                .select()
                .paths(or(regex("/lf/.*")))
                .build()
                .apiInfo(apiInfo());

    }

    /**
     *  构建api文档详细信息
     */
    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
                "甘雨路 API",// 标题
                "API 描述说明",//描述
                "1.0",//版本
                "NO terms of service",
                "lf@qq.com",// 创建人
                "The Apache License, Version 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0.html"
        );
        return apiInfo;
    }



}

添加控制层

package lf.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lf.entity.BsdUser;
import lf.service.BsdUserSerive;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import javax.annotation.Resource;
import java.util.Date;

@Controller
@RequestMapping(value="${modulePath}/page")
@Api(description = "页面跳转控制器")
public class PageController {
    @Resource
    private BsdUserSerive userSerive;
    /**
     * 进入公司主页
     */
    @RequestMapping(value = "/company",method = RequestMethod.GET)
    public String gotoCompanyPage(Model model,@RequestParam @ApiParam("用户id") Long id){
        BsdUser user = userSerive.getUserById(id);
        model.addAttribute("time",new Date());
        model.addAttribute("loginName",user.getName());
        return "main";
    }

}
package lf.controller;

import io.swagger.annotations.*;
import lf.entity.BsdUser;
import lf.entity.utils.CommonDTO;
import lf.service.BsdUserSerive;
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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

@Api(description = "用户控制器")//swagger注解用于类
@Controller // 控制器注解
@RequestMapping(value="${modulePath}/user")
public class UserController {

    @Resource
    private BsdUserSerive userSerive;

    @ResponseBody
    @RequestMapping(value = "/info",method = RequestMethod.GET)
    public CommonDTO<BsdUser> getUserbyId(@RequestParam @ApiParam("用户id") Long id){
        CommonDTO<BsdUser> detailDTO = new CommonDTO<>(0,1);
        try {
            BsdUser user = userSerive.getUserById(id);
            detailDTO.setData(user);
        } catch (Exception e) {
            e.printStackTrace();
            detailDTO.setStatus(1);
            detailDTO.setCode(400);
            detailDTO.setMsg("获取用户信息异常:"+e.getMessage());

        }

        return detailDTO;
    }


}

添加service层

package lf.service;

import lf.entity.BsdUser;


public interface BsdUserSerive {
    /**
     * 根据用户id获取用户
     * @param id
     * @return
     */
    public BsdUser getUserById(Long id);
}

添加service的实现层

package lf.service.impl;

import lf.entity.BsdUser;
import lf.mapper.BsdUserMapper;
import lf.service.BsdUserSerive;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;


@Service
public class BsdUserSeriveImpl implements BsdUserSerive{

    @Autowired
    private BsdUserMapper userMapper;
    /**
     * 根据用户id获取用户信息
     * @param id
     * @return
     */
    @Override
    public BsdUser getUserById(Long id) {
        return userMapper.getUserById(id);
    }
}

添加实体类

package lf.entity.utils;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Map;

/**
 * 详情Dto
 * @param <T>
 */
@ApiModel(description = "详情DTO")
public class CommonDTO<T>{

    @ApiModelProperty(value = "提示信息")
    private String msg;

    @ApiModelProperty(value = "0 代表无错误 1代表有错误")
    private Integer status;

    @ApiModelProperty(value = "总记录")
    private Integer total;

    @ApiModelProperty(value = "业务数据")
    private T data;

    @ApiModelProperty(value = "200 代表无错误 400代表有错误--->加入这个字段是原生需求")
    private Integer code;


    @ApiModelProperty(value = "当前页码")
    private Integer pageNo = 1;

    @ApiModelProperty(value = "当前页码,默认:10")
    private Integer pageSize = Integer.valueOf(10); // 页面大小,设置为“-1”表示不进行分页(分页无效)

    @ApiModelProperty(value = "总记录数")
    private long totalSize;// 总记录数,设置为“-1”表示不查询总数



    private Map<String,Object> DataMap;

    public CommonDTO(Integer status) {
        if (status == 0){
            this.status = status;
            this.code = 200;
            this.msg = "操作成功";
        }
        this.data = null;
    }




    public CommonDTO(Integer status, Integer total) {
        if (status == 0){
            this.status = status;
            this.code = 200;
            this.msg = "操作成功";
        }
        this.data = null;
        this.total = total;
    }

    public Map<String, Object> getDataMap() {
        return DataMap;
    }

    public void setDataMap(Map<String, Object> dataMap) {
        DataMap = dataMap;
    }

    public Integer getCode() {return code;}

    public void setCode(Integer code) {this.code = code;}

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }


    public Integer getPageNo() {
        return (pageNo!=null&&pageNo>0)?pageNo:-1;
    }

    public void setPageNo(Integer pageNo) {
        this.pageNo = pageNo;
    }

    public Integer getPageSize() {
        return (pageSize!=null&&pageSize>0)?pageSize:10;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }


    /**
     * 获取设置总数
     * @return
     */
    public long getTotalSize() {
        return totalSize;
    }

    /**
     * 设置数据总数
     * @param count
     */
    public void setTotalSize(long totalSize) {
        this.totalSize = totalSize;
        if (pageSize >= totalSize){
            pageNo = 1;
        }
    }


    @Override
    public String toString() {
        return "CommonDTO{" +
                "msg='" + msg + '\'' +
                ", status=" + status +
                ", total=" + total +
                ", data=" + data +
                '}';
    }
}
/**
 * create by Administrator
 * @date 2017-09
 */
package lf.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel(description = "用户实体")
public class BsdUser implements Serializable {
    @ApiModelProperty("主键")
    private Long id;
    @ApiModelProperty("组织id")
    private Long orgId;
    @ApiModelProperty("用户类型(0,品牌商1,服务商2,零售商,3客服)")
    private Integer userType;
    @ApiModelProperty("登录名")
    private String loginName;
    @ApiModelProperty("电话")
    private String phone;
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("简称")
    private String shortName;
    @ApiModelProperty("密码")
    private String password;
    @ApiModelProperty("联系人")
    private String contactUserName;
    @ApiModelProperty("地址")
    private String address;
    @ApiModelProperty("经度")
    private BigDecimal longitude;
    @ApiModelProperty("纬度")
    private BigDecimal latitude;
    @ApiModelProperty("级别(0,普通会员,1,一级会员,2,二级会员,3三级会员,4,四级会员,5,五级会员)")
    private Integer level;
    @ApiModelProperty("状态(0,无效,1有效,2未审核,3审核未通过)")
    private Integer state;
    @ApiModelProperty("银行卡")
    private String bankCard;
    @ApiModelProperty("总积分")
    private Long totalPoints;
    @ApiModelProperty("上级组织id")
    private Long superiorId;
    @ApiModelProperty("创建人id")
    private Long createdBy;
    @ApiModelProperty("最后更新人")
    private Long lastUpdatedBy;
    @ApiModelProperty("创建日期")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createdDate;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty("最后更新日期")
    private Date lastUpdatedDate;
    @ApiModelProperty("软删除标志")
    private Integer removeFlag;
    @ApiModelProperty("图片地址")
    private String imgUrl;
    @ApiModelProperty("消费总金额")
    private BigDecimal totalPaymentAmount;
    @ApiModelProperty("佣金")
    private BigDecimal commission;
    @ApiModelProperty("运费")
    private BigDecimal freight;
    @ApiModelProperty("编号")
    private String code;
    @ApiModelProperty("已经支付定金")
    private Long depositPaid;
    @ApiModelProperty("注册信息附件信息传")
    private String registerAttachmentUrl;
    @ApiModelProperty("支付密码")
    private String payPassWord;
    @ApiModelProperty("钱包余额")
    private BigDecimal balance;
    @ApiModelProperty("现金卷余额")
    private BigDecimal cashRoll;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public Integer getUserType() {
        return userType;
    }

    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName == null ? null : loginName.trim();
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone == null ? null : phone.trim();
    }

    public String getShortName() {
        return shortName;
    }

    public void setShortName(String shortName) {
        this.shortName = shortName == null ? null : shortName.trim();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public String getContactUserName() {
        return contactUserName;
    }

    public void setContactUserName(String contactUserName) {
        this.contactUserName = contactUserName == null ? null : contactUserName.trim();
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address == null ? null : address.trim();
    }

    public BigDecimal getLongitude() {
        return longitude;
    }

    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }

    public String getRegisterAttachmentUrl() {
        return registerAttachmentUrl;
    }

    public void setRegisterAttachmentUrl(String registerAttachmentUrl) {
        this.registerAttachmentUrl = registerAttachmentUrl == null ? null : registerAttachmentUrl.trim();
    }

    public BigDecimal getLatitude() {
        return latitude;
    }

    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl == null ? null : imgUrl.trim();
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getBankCard() {
        return bankCard;
    }

    public void setBankCard(String bankCard) {
        this.bankCard = bankCard == null ? null : bankCard.trim();
    }

    public BigDecimal getTotalPaymentAmount() {
        return totalPaymentAmount;
    }

    public void setTotalPaymentAmount(BigDecimal totalPaymentAmount) {
        this.totalPaymentAmount = totalPaymentAmount;
    }

    public Long getTotalPoints() {
        return totalPoints;
    }

    public void setTotalPoints(Long totalPoints) {
        this.totalPoints = totalPoints;
    }

    public Long getSuperiorId() {
        return superiorId;
    }

    public void setSuperiorId(Long superiorId) {
        this.superiorId = superiorId;
    }

    public BigDecimal getCommission() {
        return commission;
    }

    public void setCommission(BigDecimal commission) {
        this.commission = commission;
    }

    public BigDecimal getFreight() {
        return freight;
    }

    public void setFreight(BigDecimal freight) {
        this.freight = freight;
    }

    public Long getDepositPaid() {
        return depositPaid;
    }

    public void setDepositPaid(Long depositPaid) {
        this.depositPaid = depositPaid;
    }

    public String getPayPassWord() {
        return payPassWord;
    }

    public void setPayPassWord(String payPassWord) {
        this.payPassWord = payPassWord == null ? null : payPassWord.trim();
    }

    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    public BigDecimal getCashRoll() {
        return cashRoll;
    }

    public void setCashRoll(BigDecimal cashRoll) {
        this.cashRoll = cashRoll;
    }

    public Long getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Long getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(Long lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedDate() {
        return lastUpdatedDate;
    }

    public void setLastUpdatedDate(Date lastUpdatedDate) {
        this.lastUpdatedDate = lastUpdatedDate;
    }

    public Integer getRemoveFlag() {
        return removeFlag;
    }

    public void setRemoveFlag(Integer removeFlag) {
        this.removeFlag = removeFlag;
    }
}

添加mapper层

package lf.mapper;

import lf.entity.BsdUser;
import org.mapstruct.Mapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface BsdUserMapper{

    /**
     * 根据用户id获取用户信息
     * @param id
     * @return
     */
    public BsdUser getUserById(Long id);

}

添加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="lf.mapper.BsdUserMapper">
  <resultMap id="BsdUserResultMap" type="lf.entity.BsdUser">
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="org_id" jdbcType="BIGINT" property="orgId" />
    <result column="user_type" jdbcType="INTEGER" property="userType" />
    <result column="code" jdbcType="VARCHAR" property="code" />
    <result column="login_name" jdbcType="VARCHAR" property="loginName" />
    <result column="phone" jdbcType="VARCHAR" property="phone" />
    <result column="name" jdbcType="VARCHAR" property="name" />
    <result column="short_name" property="shortName" jdbcType="VARCHAR" />
    <result column="register_attachment_url" property="registerAttachmentUrl" jdbcType="VARCHAR" />
    <result column="password" jdbcType="VARCHAR" property="password" />
    <result column="contact_user_name" jdbcType="VARCHAR" property="contactUserName" />
    <result column="address" jdbcType="VARCHAR" property="address" />
    <result column="longitude" jdbcType="DECIMAL" property="longitude" />
    <result column="latitude" jdbcType="DECIMAL" property="latitude" />
    <result column="level" jdbcType="INTEGER" property="level" />
    <result column="img_url" jdbcType="VARCHAR" property="imgUrl" />
    <result column="state" jdbcType="INTEGER" property="state" />
    <result column="bank_card" jdbcType="VARCHAR" property="bankCard" />
    <result column="total_payment_amount" jdbcType="DECIMAL" property="totalPaymentAmount" />
    <result column="commission" jdbcType="DECIMAL" property="commission" />
    <result column="freight" jdbcType="DECIMAL" property="freight" />
    <result column="total_points" jdbcType="BIGINT" property="totalPoints" />
    <result column="superior_id" jdbcType="BIGINT" property="superiorId" />
    <result column="created_by" jdbcType="BIGINT" property="createdBy" />
    <result column="created_date" jdbcType="TIMESTAMP" property="createdDate" />
    <result column="last_updated_by" jdbcType="BIGINT" property="lastUpdatedBy" />
    <result column="last_updated_date" jdbcType="TIMESTAMP" property="lastUpdatedDate" />
    <result column="remove_flag" jdbcType="INTEGER" property="removeFlag" />
    <result column="deposit_paid" jdbcType="DECIMAL" property="depositPaid" />
    <result column="pay_pass_word" jdbcType="VARCHAR" property="payPassWord" />
    <result column="balance" jdbcType="DECIMAL" property="balance" />
    <result column="cash_roll" jdbcType="DECIMAL" property="cashRoll" />
  </resultMap>
  <sql id="BsdUser_Column_List">
    id, org_id, user_type, code, login_name, phone, name,short_name,register_attachment_url,password, contact_user_name,
    address, longitude, latitude, level, img_url, state, bank_card, total_payment_amount,commission,freight,
    total_points, superior_id, created_by, created_date, last_updated_by, last_updated_date, 
    remove_flag, deposit_paid, pay_pass_word, balance, cash_roll
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BsdUserResultMap">
    select
    <include refid="BsdUser_Column_List" />
    from bsd_user
    where id = #{id}
  </select>

  <select id="getUserById" parameterType="java.lang.Long" resultMap="BsdUserResultMap">
    select
    <include refid="BsdUser_Column_List" />
    from bsd_user
    where id = #{id}
  </select>



</mapper>

添加springboot 的启动文件

package lf;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;


@SpringBootApplication
@MapperScan("lf.mapper") // mapper层的路径
@PropertySource({"classpath:mybatis.properties",
                 "classpath:c3p0.properties"})// 读取.properties 文件路径
public class SkyRainbowApplication {

    public static void main(String[] args) {
        /**
         * Spring boot 程序入口
         */
        SpringApplication.run(SkyRainbowApplication.class,args);
   }
}

添加jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>主页</title>
</head>
<body>

    <h1>欢迎登陆甘雨路主页</h1>
    <div>登陆时间:${time}</div>
    <div>登陆人:${loginName}</div>


</body>
</html>

添加mybatis 配置文件

<?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 alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
    </typeAliases>
</configuration>

添加application.properties 配置文件

# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp

#swagger
modulePath=/lf

添加c3p0.properties配置文件

# c3p0 配置
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/bsdmxm?useUnicode=true&characterEncoding=utf8
c3p0.user=bs
c3p0.password=bs17
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

添加mybits.properties配置文件

#mybatis 配置
# mybatis xml配置文件的路径
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
# mybatis xml文件的路径
mybatis.mapper-locations=classpath:lf/mapper/xml/*.xml
# 实体类的路径
mybatis.type-aliases-package=lf.entity

 

然后启动程序,在浏览器输入http://localhost:8080/swagger-ui.html  可查看相关接口

 然后启动程序,在浏览器输入http://localhost:8080/lf/page/company?id=52  即可

 

然后启动程序,在浏览器输入http://localhost:8080/lf/user/info?id=51  即可