普通方式

新建spring模块时引入如下内容:

启用devtools插件(热部署插件)

idea需要做如下配置

settings-build-compiler->勾选build project autoxxx选项

shift+alt+ctrl+/ ->registry->勾选compiler.automake.allow.when.app.running

在springboot插件里做如下配置

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--必须配置devtools-->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>

启用lombok(通过注解生成get/set等方法)

settings-plugins-搜索lombok-安装lombok插件

结构:

使用lombok插件的实体类

package com.example.bootssm1.domain;

import lombok.*;

import java.math.BigDecimal;
import java.util.Date;
//使用了lombok插件
@Data //自动生成get/set/toString等方法
@AllArgsConstructor//生成包含所有变量的构造方法
@NoArgsConstructor//生成无参的构造方法
public class BookInfo {
private Integer bookId;
private String bookName;
private String bookAuthor;
private BigDecimal bookPrice;
private Date bookDate;
}

Mapper类

package com.example.bootssm1.mapper;

import com.example.bootssm1.domain.BookInfo;
import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper // 把该接口生成的代理类的实例交给spring容器控制
public interface BookMapper {
BookInfo getBookById(Integer bookId);
int saveBook(BookInfo bookInfo);
int batchBook(List<BookInfo> books);
}

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="com.example.bootssm1.mapper.BookMapper">
<select id="getBookById" resultType="bookInfo">
select book_id, book_name, book_author, book_price, book_date
from t_book where book_id = #{id}
</select> <insert id="saveBook" parameterType="bookInfo">
insert into t_book(book_name, book_author, book_price, book_date)
values(#{bookName}, #{bookAuthor}, #{bookPrice}, #{bookDate})
</insert> <insert id="batchBook" parameterType="list">
insert into t_book(book_name, book_author, book_price, book_date)
values
<foreach collection="books" item="val" open="(" close=")" separator=",">
#{val.bookName}, #{val.bookAuthor}, #{val.bookPrice},#{val.bookDate}
</foreach>
</insert>
</mapper>

application.yml

spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///testdb?useSSL=true
username: root
password: 123
mybatis:
configuration:
map-underscore-to-camel-case: true # book_id => bookId,book_name=> bookName 映射字段名到实体类的属性
mapper-locations: classpath:mapper/*Mapper.xml #指定mapper.xml的路径
type-aliases-package: com.example.bootssm1.domain # 定义别名名称 默认为实体类类名首字母小写

测试类:

package com.example.bootssm1;

import com.example.bootssm1.domain.BookInfo;
import com.example.bootssm1.mapper.BookMapper;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; @RunWith(SpringRunner.class)
@SpringBootTest
public class BootSsm1ApplicationTests { @Resource
private BookMapper bookMapper; @Test
public void selectOne() {
BookInfo book = bookMapper.getBookById(2);
System.out.println(book);
} @Test
public void save() {
BookInfo book = bookMapper.getBookById(2);
book.setBookName("新书");
int row = bookMapper.saveBook(book);
Assert.assertEquals(1, row);
} }

整合tk.mybatis

结构:

pom引入依赖

        <dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>

BaseMapper

package com.example.bootssm2.common;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper; /**
* 项目中所有Mapper类的父类
* @param <T>
*/
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

实体类:

package com.example.bootssm2.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date; @Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "t_book")//设定表名
public class BookInfo {
@Id // 设定为主键
private Integer bookId;
private String bookName;
private String bookAuthor;
private BigDecimal bookPrice;
private Date bookDate;
}

具体Mapper(只要继承BaseMapper即可)

package com.example.bootssm2.mapper;

import com.example.bootssm2.common.BaseMapper;
import com.example.bootssm2.domain.BookInfo; public interface BookInfoMapper extends BaseMapper<BookInfo> { }

application.yml

spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///testdb?useSSL=true
username: root
password: 123
mapper:
identity: MYSQL
not-empty: true
mappers:
- tk.mybatis.mapper.common.Mapper
- tk.mybatis.mapper.common.MySqlMapper
#启用日志打印SQL语句
logging:
level:
com.example.bootssm2.mapper: debug

测试类:

package com.example.bootssm2;

import com.example.bootssm2.domain.BookInfo;
import com.example.bootssm2.mapper.BookInfoMapper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import tk.mybatis.spring.annotation.MapperScan; import java.util.Arrays; @SpringBootApplication
@MapperScan("com.example.bootssm2.mapper")
public class BootSsm2Application { public static void main(String[] args) {
ConfigurableApplicationContext
context = SpringApplication.run(BootSsm2Application.class, args);
BookInfoMapper mapper = context.getBean(BookInfoMapper.class);
BookInfo book1 = mapper.selectByPrimaryKey(2);
BookInfo book2 = mapper.selectByPrimaryKey(4);
BookInfo book3 = mapper.selectByPrimaryKey(5); mapper.insertList(Arrays.asList(book1, book2, book3));
}
}

整合SSM框架应用的更多相关文章

  1. shiro权限控制(一):shiro介绍以及整合SSM框架

    shiro安全框架是目前为止作为登录注册最常用的框架,因为它十分的强大简单,提供了认证.授权.加密和会话管理等功能 . shiro能做什么? 认证:验证用户的身份 授权:对用户执行访问控制:判断用户是 ...

  2. 整合SSM框架必备基础—SpringMVC(下)

    在上一篇文章<整合SSM框架必备基础-SpringMVC(上)>中,胖达介绍了关于SpringMVC的诞生.优势以及执行流程等理论知识点,这篇文章打算在实操中加深一下对SpringMVC的 ...

  3. IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)

    原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...

  4. 用Maven整合SSM框架

    前述 Maven 是专门用于构建和管理Java相关项目的工具,利用 Maven 的主要目的是统一维护 jar 包.关于 Maven 的安装在这篇里面就不说了. SSM(Spring+SpringMVC ...

  5. shiro框架整合ssm框架

    下面我通过一个web的maven项目来讲解如何将shiro整合ssm框架,具体结构如下图 一.引入依赖的jar包 <?xml version="1.0" encoding=& ...

  6. 【SSM】Eclipse使用Maven创建Web项目+整合SSM框架

    自己接触ssm框架有一段时间了,从最早的接触新版ITOO项目的(SSM/H+Dobbu zk),再到自己近期来学习到的<淘淘商城>一个ssm框架的电商项目.用过,但是还真的没有自己搭建过, ...

  7. Eclipse使用Maven创建Web项目+整合SSM框架

    一.准备环境: maven:apache-maven-3.2.3 jdk:jdk1.8.0_25 tomcat:tomcat-9.0 二.配置Maven.jdk 1.Window——>Prefe ...

  8. IDEA 整合 SSM 框架学习

    认识 Spring 框架 更多详情请点击这里:这里 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control ...

  9. 手把手教你整合SSM框架(基于课工厂+MyEclipse 2017 CI 10)

    步骤1:myeclipse创建项目,导入spring框架 整合思路:因为spring和spring mvc同源,可以无缝整合,故先整合spring+mybatis,然后配置web.xml.spring ...

  10. 一个JavaWeb搭建的开源Blog系统,整合SSM框架

    搬砖有暇,捣鼓了一个简单的Blog系统(项目地址https://github.com/lenve/JavaEETest/tree/master/MyBlog),适合以下人群学习: 1.已经掌握了jsp ...

随机推荐

  1. 20155230 《Java程序设计》实验一(Java开发环境的熟悉) 实验报告

    练习题: 凯撒密码: import java.util.Scanner; import java.io.*; public class exp1 { public static void main(S ...

  2. 虚拟机与Linux的初体验

    很早的时候就知道虚拟机这个神奇东西的存在,但也仅仅是只闻其名,未见其身.后来在信息安全素质教育的这门课程上,为了做木马实验.暴力破解实验以及邮件窃取实验,这才比较直接的接触到了虚拟机.当我看着在另一个 ...

  3. SRM First Problem && SRM 638 250pts NamingConvention

    NamingConvention 题意: 给一个字符串,删掉所有的'_',然后将‘_'后的第一个字符改成大写. 代码: #include<bits/stdc++.h> using name ...

  4. Linux日志切割logrotate服务配置

    一.logrotate介绍 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.一般centos系统已经自带安装好 ...

  5. springboot+security+JWT实现单点登录

    本次整合实现的目标:1.SSO单点登录2.基于角色和spring security注解的权限控制. 整合过程如下: 1.使用maven构建项目,加入先关依赖,pom.xml如下: <?xml v ...

  6. 「日常训练」Jongmah(Codeforces-1110D)

    题意 你有n个数字,范围[1, m],你可以选择其中的三个数字构成一个三元组,但是这三个数字必须是连续的或者相同的,每个数字只能用一次,问这n个数字最多构成多少个三元组? 分析 根据官方Editori ...

  7. C语言的函数调用过程(栈帧的创建与销毁)

    从汇编的角度解析函数调用过程 看看下面这个简单函数的调用过程: int Add(int x,int y) { ; sum = x + y; return sum; } int main () { ; ...

  8. 高可用Kubernetes集群-10. 部署kube-proxy

    十二.部署kube-proxy 1. 创建kube-proxy证书 1)创建kube-proxy证书签名请求 # kube-proxy提取CN作为客户端的用户名,即system:kube-proxy. ...

  9. java引用Arcface,实现人脸识别(demo)

    ## 开发环境准备: ###开发使用到的软件和工具: * Jdk8.mysql5.7.libarcsoft_face.dll(so).libarcsoft_face_engine.dll(so).li ...

  10. PPM、PGM、PBM图像格式剖析

    今天突然需要用到PPM这个图像文件格式,之前没见过,在此记录一下. PPM.PGM.PBM这三个图像文件格式很少见,其实也不难,分别用于彩色图像.灰度图像.二值图像.这里以PPM格式为例. PPM格式 ...