纵有疾风起
人生不言弃

整合SSM框架应用

普通方式

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

整合SSM框架应用插图

启用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插件

结构:

整合SSM框架应用插图1

使用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: 123mybatis:  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)@SpringBootTestpublic 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

结构:

整合SSM框架应用插图2

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: 123mapper:  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));    }}

 

文章转载于:https://www.cnblogs.com/lm970585581/p/9842346.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » 整合SSM框架应用
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录