• SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例


    SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例

    这是一个简单的SpringBoot整合实例

    这里是项目的结构目录

    这里写图片描述

    首先是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>Ming</groupId>
      <artifactId>SpringBoot</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    
       <!-- Spring Boot 启动父依赖 -->
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>1.5.4.RELEASE</version>
      </parent>
    
      <properties>
          <mybatis-spring-boot>1.2.0</mybatis-spring-boot>
          <mysql-connector>5.1.39</mysql-connector>
          <druid>1.0.18</druid>
          <java.version>1.8</java.version>
      </properties>
    
      <dependencies>
    
           <!-- Spring Boot Web 依赖 -->
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
           </dependency>
    
           <!-- Spring Boot Mybatis 依赖 -->
           <dependency>
               <groupId>org.mybatis.spring.boot</groupId>
               <artifactId>mybatis-spring-boot-starter</artifactId>
               <version>1.1.1</version>
           </dependency>
    
           <!-- MySQL 连接驱动依赖 -->
           <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>${mysql-connector}</version>
           </dependency>
    
           <!-- Druid 数据连接池依赖 -->
           <dependency>
               <groupId>com.alibaba</groupId>
               <artifactId>druid</artifactId>
               <version>${druid}</version>
           </dependency>
    
           <!-- 分页插件 -->  
           <dependency>  
               <groupId>com.github.pagehelper</groupId>  
               <artifactId>pagehelper</artifactId>  
               <version>4.1.6</version>  
           </dependency>  
    
           <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
           </dependency>        
       </dependencies>
    
    </project>

    接着在src/main/resources目录下新建一个application.yml文件

    server:
      port: 8080
    
    logging:
      level: 
        learning: trace
    
    spring:
      #数据源配置
      datasource:
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: 123456
        driver-class-name: com.mysql.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        connectionProperties: druid.stat.mergeSql=true
      #模板引擎
      freemarker:
        #关闭缓存
        cache: false
        request-context-attribute: request
        #模板加载的位置
        template-loader-path: classpath:/templates
        #前缀
        suffix: .htm
        #后缀
        prefix: /htm/
    
    mybatis:
      #实体类所做包
      type-aliases-package: learning.model
      #mapper.xml所在位置
      mapper-locations: classpath:mappers/*.xml

    在conf包下新建一个MybatisConfig类以配置使用PageHelper分页
    代码如下

    @Configuration
    public class MybatisConfig {
        @Bean
        public PageHelper pageHelper(){
            PageHelper pageHelper = new PageHelper();  
            //添加配置,也可以指定文件路径
            Properties p = new Properties();
            p.setProperty("offsetAsPageNum", "true");
            p.setProperty("rowBoundsWithCount", "true");
            p.setProperty("reasonable", "true");
            pageHelper.setProperties(p);
            return pageHelper;
        }
    }

    接着就可以编写实例类

    public class Player {
        private Integer id;
        private String name;
        private Double points;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Double getPoints() {
            return points;
        }
        public void setPoints(Double points) {
            this.points = points;
        }
    }
    

    dao接口

    public interface PlayerDao {
        void save (Player player);
    
        Player findByKey(Integer id);
    
        List<Player> findAll();
    }
    

    service接口以及实现

    public interface PlayerService {
        void add(Player player);
    
        List<Player> getAll();
    }
    
    @Service
    public class PlayerServiceImpl implements PlayerService{
    
        @Autowired
        private PlayerDao playerDao;
    
        @Override
        public void add(Player player) {
            playerDao.save(player);
        }
    
        @Override
        public List<Player> getAll() {
            PageHelper.startPage(1, 2);
            return playerDao.findAll();
        }
    
    }

    在src/main/resources 下新建一个包mapppers用来存放mybatis的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="learning.mapper.PlayerDao">
        <insert id="save">
            INSERT INTO player (name,points) VALUES (#{name},#{points})
        </insert>   
    
        <select id="findByKey" resultType="learning.model.Player">
            SELECT * FROM player WHERE id = #{id}
        </select>
    
        <select id="findAll" resultType="learning.model.Player">
            SELECT * FROM player
        </select>   
    </mapper>

    在src/main/resources在新建一个目录templates用来存放freemarker加载的模板
    这是我的项目结构

    随意编写一个freemarker 的模板html界面

    <!DOCTYPE HTML>
    <html>
    <head>
    </head>
    <body>
        <h3>success</h3>
        <#list list as player>
            ${player.name} : ${player.points} <br/>
        </#list>
    
    </body>
    </html>

    然后编写控制层代码

    @Controller
    @RequestMapping("/Test")
    public class TestController {
        @Autowired
        private PlayerService playerService;
    
        @RequestMapping("/getAll")
        @ResponseBody
        public Object getAll(){
            Player player = new Player();
            player.setName("杜兰特");
            player.setPoints(28.4);
            player.setId(3);
            return player;              
        }
    
        @RequestMapping("/all")
        @ResponseBody
        public Object get(){
            return playerService.getAll();
        }
    
        @RequestMapping("/add")
        public String add(Player player){
            playerService.add(player);
            return "test/hello";
        }
    
        @RequestMapping("/hello")
        public String hello(Model model) {
            List<Player> list = playerService.getAll();
            model.addAttribute("list",list);
            return "test/hello";
        }
    
    最后编写项目的启动代码主要启动类的路径要在其他要扫描包的同级目录
    如图AppStart
    

    这里写图片描述

    启动类代码

    @SpringBootApplication
    //这里是扫描dao接口的包用于识别mybatis
    @MapperScan(basePackages="learning.mapper")
    public class AppStart {
        /**
         * @param args
         */
        public static void main(String[] args) {
            SpringApplication.run(AppStart.class, args);
        }
    }
    

    最后启动AppStart main 方法即可

    这里写图片描述

    日志信息
    这里写图片描述

    这里是我的项目代码
    http://download.csdn.net/download/cmmchenmm/9897156

    我将代码上传到了GitHub上了
    https://github.com/newShiJ/SpringBoot-Learing

  • 相关阅读:
    database join
    图像超分辨率重建
    信号处理
    将博客搬至CSDN
    Openstack
    nginx的优化
    CentOS系统的优化
    zabbix服务端客户端部署
    MySQL优化必须调整的10项配置
    TCP三次握手
  • 原文地址:https://www.cnblogs.com/jpfss/p/8279663.html
Copyright © 2020-2023  润新知