步骤 1 : 关于Mybatis

Mybatis 是用来进行数据库操作的框架,如果没有相关知识最好学习一下先: Mybatis 系列教材

步骤 2 : 创建数据库

创建数据库,名称是 how2java

create database how2java;

步骤 3 : 创建表

创建个分类表,字段很简单,就id和name

use how2java;

CREATE TABLE category_ (

  id int(11) NOT NULL AUTO_INCREMENT,

  name varchar(30),

  PRIMARY KEY (id)

) DEFAULT CHARSET=UTF8;

步骤 4 : 准备数据

插入4条数据

insert into category_ values(null,'category 1');

insert into category_ values(null,'category 2');

insert into category_ values(null,'category 3');

insert into category_ values(null,'category 4');

步骤 5 : 先运行,看到效果,再学习

老规矩,先下载下载区(点击进入)的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。 
测试地址:

http://127.0.0.1:8080/listCategory


注: 启动方式是Springboot特有的,直接运行类:com.how2java.springboot.Application 的主方法。

先运行,看到效果,再学习

步骤 6 : 模仿和排错

在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。 
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。 
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。 
推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。 
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来 
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程

步骤 7 : 基于前面的知识点

本知识点基于错误处理开发,所以最好要把前面的内容学习了哦,不然有些内容恐怕看不懂呢

步骤 8 : application.properties

新增数据库链接必须的参数

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8

spring.datasource.username=root

spring.datasource.password=admin

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

步骤 9 : pom.xml

增加对mysql和mybatis的支持

<!-- 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>5.1.21</version>

</dependency>

<?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>com.how2java</groupId>

  <artifactId>springboot</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <name>springboot</name>

  <description>springboot</description>

  <packaging>war</packaging>

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.5.9.RELEASE</version>

    </parent>

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-tomcat</artifactId>

        </dependency>

        <dependency>

              <groupId>junit</groupId>

              <artifactId>junit</artifactId>

              <version>3.8.1</version>

              <scope>test</scope>

        </dependency>

        <!-- servlet依赖. -->

        <dependency>

              <groupId>javax.servlet</groupId>

              <artifactId>javax.servlet-api</artifactId>

        </dependency>

              <dependency>

                     <groupId>javax.servlet</groupId>

                     <artifactId>jstl</artifactId>

              </dependency>

        <!-- tomcat的支持.-->

        <dependency>

               <groupId>org.apache.tomcat.embed</groupId>

               <artifactId>tomcat-embed-jasper</artifactId>

        </dependency>    

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

            <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->

        </dependency>

        <!-- 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>5.1.21</version>

        </dependency>

    </dependencies>

    <properties>

        <java.version>1.8</java.version>

    </properties>

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

</project>

步骤 10 : Category

增加一个包:com.how2java.springboot.pojo,然后创建实体类Category。

package com.how2java.springboot.pojo;

public class Category {

    private int id;

    private String name;

    public int getId() {

        return id;

    }

    public void setId(int id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

}

步骤 11 : CategoryMapper

增加一个包:com.how2java.springboot.mapper,然后创建接口CategoryMapper。
使用注解@Mapper 表示这是一个Mybatis Mapper接口。
使用@Select注解表示调用findAll方法会去执行对应的sql语句。

@Select("select * from category_ ")

List<Category> findAll();


关于Mybatis的注解方式有相关的系列教材: Mybatis 注解教程

package com.how2java.springboot.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Select;

import com.how2java.springboot.pojo.Category;

@Mapper

public interface CategoryMapper {

    @Select("select * from category_ ")

    List<Category> findAll();

}

步骤 12 : CategoryController

增加一个包:com.how2java.springboot.web,然后创建CategoryController 类。
1. 接受listCategory映射
2. 然后获取所有的分类数据
3. 接着放入Model中
4. 跳转到listCategory.jsp中

package com.how2java.springboot.web;

import java.util.List;

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.how2java.springboot.mapper.CategoryMapper;

import com.how2java.springboot.pojo.Category;

@Controller

public class CategoryController {

    @Autowired CategoryMapper categoryMapper;

    @RequestMapping("/listCategory")

    public String listCategory(Model m) throws Exception {

        List<Category> cs=categoryMapper.findAll();

        m.addAttribute("cs", cs);

        return "listCategory";

    }

}

步骤 13 : listCategory.jsp

用jstl遍历从CategoryController 传递过来的集合:cs.

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<table align='center' border='1' cellspacing='0'>

    <tr>

        <td>id</td>

        <td>name</td>

    </tr>

    <c:forEach items="${cs}" var="c" varStatus="st">

        <tr>

            <td>${c.id}</td>

            <td>${c.name}</td>

        </tr>

    </c:forEach>

</table>

步骤 14 : 重启测试

因为在pom.xml中增加了jar包的依赖,所以仅仅通过Springboot本身的热部署是无法起作用的,得手动重启一下。
然后访问测试地址:

http://127.0.0.1:8080/listCategory


观察到如图所示的效果

重启测试