整体架构图
第一步:先创建maven工程
注意:需要先配好maven,选用的maven是3.5.0版本
第二步:编辑pom.xml文件
<?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.gec.ssm</groupId>
<artifactId>springboot-mybatis-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<name>springboot-test</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--集成druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- MyBatis 生成器 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
第三步:创建Items类
package com.gec.ssm.pojo;
import java.io.Serializable;
import java.util.Date;
public class Items implements Serializable {
private Integer id;
private String name;
private Integer price;
private String pic;
private Date createtime;
private String detail;
private static final long serialVersionUID = 1L;
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 Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", name=").append(name);
sb.append(", price=").append(price);
sb.append(", pic=").append(pic);
sb.append(", createtime=").append(createtime);
sb.append(", detail=").append(detail);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
第四步:创建ItemsExample类
package com.gec.ssm.pojo;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
public class ItemsExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public ItemsExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
protected void addCriterionForJDBCDate(String condition, Date value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
addCriterion(condition, new java.sql.Date(value.getTime()), property);
}
protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
if (values == null || values.size() == 0) {
throw new RuntimeException("Value list for " + property + " cannot be null or empty");
}
List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
Iterator<Date> iter = values.iterator();
while (iter.hasNext()) {
dateList.add(new java.sql.Date(iter.next().getTime()));
}
addCriterion(condition, dateList, property);
}
protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Integer value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Integer value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Integer value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Integer value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Integer value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Integer value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Integer> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Integer> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Integer value1, Integer value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Integer value1, Integer value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andNameIsNull() {
addCriterion("name is null");
return (Criteria) this;
}
public Criteria andNameIsNotNull() {
addCriterion("name is not null");
return (Criteria) this;
}
public Criteria andNameEqualTo(String value) {
addCriterion("name =", value, "name");
return (Criteria) this;
}
public Criteria andNameNotEqualTo(String value) {
addCriterion("name <>", value, "name");
return (Criteria) this;
}
public Criteria andNameGreaterThan(String value) {
addCriterion("name >", value, "name");
return (Criteria) this;
}
public Criteria andNameGreaterThanOrEqualTo(String value) {
addCriterion("name >=", value, "name");
return (Criteria) this;
}
public Criteria andNameLessThan(String value) {
addCriterion("name <", value, "name");
return (Criteria) this;
}
public Criteria andNameLessThanOrEqualTo(String value) {
addCriterion("name <=", value, "name");
return (Criteria) this;
}
public Criteria andNameLike(String value) {
addCriterion("name like", value, "name");
return (Criteria) this;
}
public Criteria andNameNotLike(String value) {
addCriterion("name not like", value, "name");
return (Criteria) this;
}
public Criteria andNameIn(List<String> values) {
addCriterion("name in", values, "name");
return (Criteria) this;
}
public Criteria andNameNotIn(List<String> values) {
addCriterion("name not in", values, "name");
return (Criteria) this;
}
public Criteria andNameBetween(String value1, String value2) {
addCriterion("name between", value1, value2, "name");
return (Criteria) this;
}
public Criteria andNameNotBetween(String value1, String value2) {
addCriterion("name not between", value1, value2, "name");
return (Criteria) this;
}
public Criteria andPriceIsNull() {
addCriterion("price is null");
return (Criteria) this;
}
public Criteria andPriceIsNotNull() {
addCriterion("price is not null");
return (Criteria) this;
}
public Criteria andPriceEqualTo(Integer value) {
addCriterion("price =", value, "price");
return (Criteria) this;
}
public Criteria andPriceNotEqualTo(Integer value) {
addCriterion("price <>", value, "price");
return (Criteria) this;
}
public Criteria andPriceGreaterThan(Integer value) {
addCriterion("price >", value, "price");
return (Criteria) this;
}
public Criteria andPriceGreaterThanOrEqualTo(Integer value) {
addCriterion("price >=", value, "price");
return (Criteria) this;
}
public Criteria andPriceLessThan(Integer value) {
addCriterion("price <", value, "price");
return (Criteria) this;
}
public Criteria andPriceLessThanOrEqualTo(Integer value) {
addCriterion("price <=", value, "price");
return (Criteria) this;
}
public Criteria andPriceIn(List<Integer> values) {
addCriterion("price in", values, "price");
return (Criteria) this;
}
public Criteria andPriceNotIn(List<Integer> values) {
addCriterion("price not in", values, "price");
return (Criteria) this;
}
public Criteria andPriceBetween(Integer value1, Integer value2) {
addCriterion("price between", value1, value2, "price");
return (Criteria) this;
}
public Criteria andPriceNotBetween(Integer value1, Integer value2) {
addCriterion("price not between", value1, value2, "price");
return (Criteria) this;
}
public Criteria andPicIsNull() {
addCriterion("pic is null");
return (Criteria) this;
}
public Criteria andPicIsNotNull() {
addCriterion("pic is not null");
return (Criteria) this;
}
public Criteria andPicEqualTo(String value) {
addCriterion("pic =", value, "pic");
return (Criteria) this;
}
public Criteria andPicNotEqualTo(String value) {
addCriterion("pic <>", value, "pic");
return (Criteria) this;
}
public Criteria andPicGreaterThan(String value) {
addCriterion("pic >", value, "pic");
return (Criteria) this;
}
public Criteria andPicGreaterThanOrEqualTo(String value) {
addCriterion("pic >=", value, "pic");
return (Criteria) this;
}
public Criteria andPicLessThan(String value) {
addCriterion("pic <", value, "pic");
return (Criteria) this;
}
public Criteria andPicLessThanOrEqualTo(String value) {
addCriterion("pic <=", value, "pic");
return (Criteria) this;
}
public Criteria andPicLike(String value) {
addCriterion("pic like", value, "pic");
return (Criteria) this;
}
public Criteria andPicNotLike(String value) {
addCriterion("pic not like", value, "pic");
return (Criteria) this;
}
public Criteria andPicIn(List<String> values) {
addCriterion("pic in", values, "pic");
return (Criteria) this;
}
public Criteria andPicNotIn(List<String> values) {
addCriterion("pic not in", values, "pic");
return (Criteria) this;
}
public Criteria andPicBetween(String value1, String value2) {
addCriterion("pic between", value1, value2, "pic");
return (Criteria) this;
}
public Criteria andPicNotBetween(String value1, String value2) {
addCriterion("pic not between", value1, value2, "pic");
return (Criteria) this;
}
public Criteria andCreatetimeIsNull() {
addCriterion("createtime is null");
return (Criteria) this;
}
public Criteria andCreatetimeIsNotNull() {
addCriterion("createtime is not null");
return (Criteria) this;
}
public Criteria andCreatetimeEqualTo(Date value) {
addCriterionForJDBCDate("createtime =", value, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeNotEqualTo(Date value) {
addCriterionForJDBCDate("createtime <>", value, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeGreaterThan(Date value) {
addCriterionForJDBCDate("createtime >", value, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
addCriterionForJDBCDate("createtime >=", value, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeLessThan(Date value) {
addCriterionForJDBCDate("createtime <", value, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
addCriterionForJDBCDate("createtime <=", value, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeIn(List<Date> values) {
addCriterionForJDBCDate("createtime in", values, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeNotIn(List<Date> values) {
addCriterionForJDBCDate("createtime not in", values, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeBetween(Date value1, Date value2) {
addCriterionForJDBCDate("createtime between", value1, value2, "createtime");
return (Criteria) this;
}
public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
addCriterionForJDBCDate("createtime not between", value1, value2, "createtime");
return (Criteria) this;
}
public Criteria andDetailIsNull() {
addCriterion("detail is null");
return (Criteria) this;
}
public Criteria andDetailIsNotNull() {
addCriterion("detail is not null");
return (Criteria) this;
}
public Criteria andDetailEqualTo(String value) {
addCriterion("detail =", value, "detail");
return (Criteria) this;
}
public Criteria andDetailNotEqualTo(String value) {
addCriterion("detail <>", value, "detail");
return (Criteria) this;
}
public Criteria andDetailGreaterThan(String value) {
addCriterion("detail >", value, "detail");
return (Criteria) this;
}
public Criteria andDetailGreaterThanOrEqualTo(String value) {
addCriterion("detail >=", value, "detail");
return (Criteria) this;
}
public Criteria andDetailLessThan(String value) {
addCriterion("detail <", value, "detail");
return (Criteria) this;
}
public Criteria andDetailLessThanOrEqualTo(String value) {
addCriterion("detail <=", value, "detail");
return (Criteria) this;
}
public Criteria andDetailLike(String value) {
addCriterion("detail like", value, "detail");
return (Criteria) this;
}
public Criteria andDetailNotLike(String value) {
addCriterion("detail not like", value, "detail");
return (Criteria) this;
}
public Criteria andDetailIn(List<String> values) {
addCriterion("detail in", values, "detail");
return (Criteria) this;
}
public Criteria andDetailNotIn(List<String> values) {
addCriterion("detail not in", values, "detail");
return (Criteria) this;
}
public Criteria andDetailBetween(String value1, String value2) {
addCriterion("detail between", value1, value2, "detail");
return (Criteria) this;
}
public Criteria andDetailNotBetween(String value1, String value2) {
addCriterion("detail not between", value1, value2, "detail");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}
第五步:创建ItemsMapper接口
package com.gec.ssm.mapper;
import com.gec.ssm.pojo.Items;
import com.gec.ssm.pojo.ItemsExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ItemsMapper {
long countByExample(ItemsExample example);
int deleteByExample(ItemsExample example);
int deleteByPrimaryKey(Integer id);
int insert(Items record);
int insertSelective(Items record);
List<Items> selectByExample(ItemsExample example);
Items selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") Items record, @Param("example") ItemsExample example);
int updateByExample(@Param("record") Items record, @Param("example") ItemsExample example);
int updateByPrimaryKeySelective(Items record);
int updateByPrimaryKey(Items record);
}
第六步:创建ItemService接口
package com.gec.ssm.service;
import com.gec.ssm.pojo.Items;
import java.util.List;
public interface ItemService {
public List<Items> queryItems();
}
第七步:创建ItemServiceImpl类
package com.gec.ssm.service.impl;
import com.gec.ssm.mapper.ItemsMapper;
import com.gec.ssm.pojo.Items;
import com.gec.ssm.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ItemServiceImpl implements ItemService {
@Autowired
private ItemsMapper itemsMapper;
@Override
public List<Items> queryItems(){
return itemsMapper.selectByExample(null);
}
}
第八步:创建ItemController类
package com.gec.ssm.controller;
import com.gec.ssm.pojo.Items;
import com.gec.ssm.service.ItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
public class ItemController {
@Autowired
private ItemService itemService;
@GetMapping("/queryItems")
public ModelAndView queryItems(){
List<Items> list=itemService.queryItems();
ModelAndView mv=new ModelAndView();
mv.addObject("itemList",list);
mv.setViewName("list");
return mv;
}
}
第九步:在resources下创建application.yml文件
需要先创建mybatisdb数据库
server:
port: 8083 //设置端口号
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatisdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root //数据库用户名
password: root//数据库密码
pagehelper:
helper-dialect: mysql
reasonable: true
第十步:在resources下创建com.gec.ssm.mapper文件夹(注意:文件夹的名称要用/连接)
如图所示
第十一步:在com.gec.ssm.mapper文件夹下创建ItemsMapper.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.gec.ssm.mapper.ItemsMapper">
<resultMap id="BaseResultMap" type="com.gec.ssm.pojo.Items">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="price" jdbcType="INTEGER" property="price" />
<result column="pic" jdbcType="VARCHAR" property="pic" />
<result column="createtime" jdbcType="DATE" property="createtime" />
<result column="detail" jdbcType="VARCHAR" property="detail" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, name, price, pic, createtime, detail
</sql>
<select id="selectByExample" parameterType="com.gec.ssm.pojo.ItemsExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from items
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from items
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from items
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="com.gec.ssm.pojo.ItemsExample">
delete from items
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.gec.ssm.pojo.Items">
insert into items (id, name, price,
pic, createtime, detail
)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{price,jdbcType=INTEGER},
#{pic,jdbcType=VARCHAR}, #{createtime,jdbcType=DATE}, #{detail,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.gec.ssm.pojo.Items">
insert into items
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="name != null">
name,
</if>
<if test="price != null">
price,
</if>
<if test="pic != null">
pic,
</if>
<if test="createtime != null">
createtime,
</if>
<if test="detail != null">
detail,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="price != null">
#{price,jdbcType=INTEGER},
</if>
<if test="pic != null">
#{pic,jdbcType=VARCHAR},
</if>
<if test="createtime != null">
#{createtime,jdbcType=DATE},
</if>
<if test="detail != null">
#{detail,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.gec.ssm.pojo.ItemsExample" resultType="java.lang.Long">
select count(*) from items
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update items
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.name != null">
name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.price != null">
price = #{record.price,jdbcType=INTEGER},
</if>
<if test="record.pic != null">
pic = #{record.pic,jdbcType=VARCHAR},
</if>
<if test="record.createtime != null">
createtime = #{record.createtime,jdbcType=DATE},
</if>
<if test="record.detail != null">
detail = #{record.detail,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update items
set id = #{record.id,jdbcType=INTEGER},
name = #{record.name,jdbcType=VARCHAR},
price = #{record.price,jdbcType=INTEGER},
pic = #{record.pic,jdbcType=VARCHAR},
createtime = #{record.createtime,jdbcType=DATE},
detail = #{record.detail,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.gec.ssm.pojo.Items">
update items
<set>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
</if>
<if test="price != null">
price = #{price,jdbcType=INTEGER},
</if>
<if test="pic != null">
pic = #{pic,jdbcType=VARCHAR},
</if>
<if test="createtime != null">
createtime = #{createtime,jdbcType=DATE},
</if>
<if test="detail != null">
detail = #{detail,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gec.ssm.pojo.Items">
update items
set name = #{name,jdbcType=VARCHAR},
price = #{price,jdbcType=INTEGER},
pic = #{pic,jdbcType=VARCHAR},
createtime = #{createtime,jdbcType=DATE},
detail = #{detail,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
第十二步:在resources下创建templates文件夹
第十三步:在templates文件夹下创建list.html文件
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>springboot_MyBatis综合案例</title>
</head>
<body>
<table width="60%" border="1px">
<tr th:each="item:${itemList}">
<td th:text="${item.name}"></td>
<td th:text="${item.price}"></td>
<td th:text="${item.createtime}"></td>
<td th:text="${item.detail}"></td>
</tr>
</table>
</body>
</html>
第十四步:在ItemsMapper类的上一层创建MybatisAPP类
package com.gec.ssm;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.gec.ssm.mapper")
public class MybatisApp {
public static void main(String[] args) {
SpringApplication.run(MybatisApp.class,args);
}
}
第十五步:创建数据库、数据表
create database mybatisdb; //创建数据库
USE mybatisdb; //使用数据库
//判断如果items数据表存在就删除,不存在就创建items数据表
DROP TABLE IF EXISTS `items`;
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`price` int(11) DEFAULT NULL,
`pic` varchar(50) DEFAULT NULL,
`createtime` date DEFAULT NULL,
`detail` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=154 DEFAULT CHARSET=utf8;
//插入数据
insert into `items`(`id`,`name`,`price`,`pic`,`createtime`,`detail`) values (32,'联想电脑777',5000,'g693.jpg','2018-09-09','sss'),(33,'联想电脑55',5000,'s156.jpg','2018-09-09','sss'),(34,'华为电脑2323',5000,'g693.jpg','2020-01-08','sss'),(39,'Java考试A卷333',123,'ad20.jpg','2017-10-01','ss'),(40,'联想电脑421',8000,'61Z58PICgN6.jpg','2018-09-09','好'),(43,'联想电脑009',5000,'61Z58PICgN6.jpg','2018-09-09','sss'),(44,'测试商品0001',999,'ad20.jpg','2018-09-09','sss'),(45,'小米电视4S',4000,'leaveProcess.png','2019-09-09','fsdfsfd'),(46,'小米电视5S',5000,'58072422Ndd7e66c4.jpg','2019-09-09','sfsaf'),(47,'小米电视8S',4000,'baoxiaoprocess.png','2019-09-09','sdfas'),(48,'联想909090',4000,'58072422Ndd7e66c4.jpg','2019-09-09','Ok'),(49,'康师傅牛肉面222',6,NULL,'2019-09-09','good'),(50,'iphone11',7000,'xx.jpg','2019-01-01','ddd'),(51,'iphone11ddddd',7000,'xx.jpg','2019-01-01','ddd'),(53,'联想2222222',4000,'24332.jpg','2019-09-09','耐 用,very good'),(54,'联想7777',4000,'HelloProcess.png','2019-09-09','可有可无'),(55,'小米电脑',5000,'xiaomi.jpg','2019-09-09','ssss'),(56,'小米电脑002',5000,'58072422Ndd7e66c4.jpg','2019-09-10','ssdfs'),(57,'联想_ajax01',5000,'xiaomi.jpg','2019-09-10','sdsafsafsafasf'),(58,'联想_ajax02',4000,'xiaomi.jpg','2019-09-10','sdsafsafsafasf'),(59,'联想_ajax03',4000,'xiaomi.jpg','2019-09-10','sdsafsafsafasf'),(60,'联想_ajax04',4000,'xiaomi.jpg','2019-09-10','sdsafsafsafasf'),(61,'联想_ajax06',4000,'xiaomi.jpg','2019-09-10','sdsafsafsafasf'),(62,'小米电视kkk',5000,'ddd.jpg','2019-03-07','adsfasfd'),(64,'大米电视hsdsdf',1100,'ddd.jpg','2019-11-09','very bad'),(66,'黑米手44机',1800,'ccc.jpg','2019-03-07','我试试'),(67,'白米手机',999999999,'ccc.jpg','2019-03-07','我试试'),(68,'绿米手机',999999999,'ccc.jpg','2019-03-07','略略略'),(74,'小米电视hh',5000,'cc.jpg','2019-11-10','good'),(75,'小米手机99',5000,'58072422Ndd7e66c4.jpg','2018-11-10','very good'),(76,'小米手机44',4000,'58072422Ndd7e66c4.jpg','2018-11-10','good'),(77,'小米手机33',3000,'banner2.jpg','2019-11-10','good'),(78,'OPPO001',3000,'cc.jpg','2019-09-09','very good'),(79,'测试商品口罩01',5,'baoxiaoprocess.png','2019-09-10','good'),(85,'小米测试0001',3000,'123.jpg','2018-11-10','sss'),(86,'小米测试0001',3000,'123.jpg','2018-11-10','sss'),(88,'测试产品',222,'xxx.jpg','2020-06-07','好'),(89,'华为荣耀v30',3000,'xxx.jpg','2020-06-08','faaafa'),(95,'Nokia',90,'00570812c74cfb75.jpg','2019-11-10','safdsaf'),(109,'iphone12',6000,'xxx.jpg','2020-11-10','very good'),(111,'康师傅牛肉面2',5,'xx.jpg','2021-04-10','very good'),(130,'李宁体育用品',500,'lining.jpg','2021-11-04','very good'),(143,'康师傅牛肉面',5,'xx.jpg','2021-07-12','ss'),(145,'康师傅牛肉面',5,'xx.jpg','2021-07-12','ss'),(146,'TCL电视1201',8000,'s156.jpg','2018-09-09','好'),(147,'荣耀手机xxxx',4000,'xx.png','2022-12-01','very good'),(148,'TCL电视III',5000,'s156.jpg','2018-09-09','ok'),(149,'sdfsaf',5,'string','2022-12-28','string'),(150,'康师傅',6,'xx.jpg','2021-07-11','dfsaf'),(151,'联想0306',6000,'24332.jpg','2019-09-09','耐 用,very good'),(152,'商品名称',5000,'xxx.jpg','2023-03-06','测试商品'),(153,'康师傅222',5,'xx.jpg','2021-07-12','sdsafdsa');
第十六步:运行MybatisApp类
设置的映射
输入设置的端口号和映射