当前位置:首页 > 科技  > 软件

Spring Boot:如何快速集成Mybatis和Thymeleaf

来源: 责编: 时间:2024-01-16 10:15:20 299观看
导读前言有时候做方案,需要模拟一些业务上的一些场景来验证方案的可行性,基本上每次都是到处百度如何集成springboot+mybatis+thymeleaf这些东西的集成平时基本上一年也用不了一次,虽然比较简单,奈何我真得记不住详细的每一步

前言

有时候做方案,需要模拟一些业务上的一些场景来验证方案的可行性,基本上每次都是到处百度如何集成springboot+mybatis+thymeleaf这些东西的集成平时基本上一年也用不了一次,虽然比较简单,奈何我真得记不住详细的每一步,因此每次都是从零开始,我一直在想,把时间浪费在这种重复的事情是没有意义的,所以这篇文章记录一下,以后再也不到处百度来接拼凑了。qtB28资讯网——每日最新资讯28at.com

目标

springboot中集在mybatis和thymeleaf,简单实现一下新增和查询功能,后续有需要再往上补。qtB28资讯网——每日最新资讯28at.com

图片图片qtB28资讯网——每日最新资讯28at.com

环境配置

jdk版本:1.8qtB28资讯网——每日最新资讯28at.com

开发工具:Intellij iDEA 2020.1qtB28资讯网——每日最新资讯28at.com

springboot:2.3.9.RELEASEqtB28资讯网——每日最新资讯28at.com

具体步骤

依赖引入

主要引入了springboot、thymeleaf、mybais、mysql、jdbc以及热部署和lombda相关的依赖;qtB28资讯网——每日最新资讯28at.com

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency>    <groupId>ognl</groupId>    <artifactId>ognl</artifactId>    <version>3.1.26</version></dependency><dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-devtools</artifactId>    <optional>true</optional></dependency><dependency>    <groupId>org.mybatis.spring.boot</groupId>    <artifactId>mybatis-spring-boot-starter</artifactId>    <version>2.1.4</version></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId></dependency>

配置文件

配置文件这里新增了三处配置,分别是thymeleaf、数据库连接、mybatis;qtB28资讯网——每日最新资讯28at.com

#thymeleaf配置spring.thymeleaf.cache=falsespring.thymeleaf.suffix=.htmlspring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.servlet.content-type=text/htmlspring.thymeleaf.encoding=utf-8#数据库连接配置spring.datasource.driverClassName=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3307/happy_home?serverTimeznotallow=Asia/Shanghai spring.datasource.username=rootspring.datasource.password=root#mybatis配置mybatis.mapper-locatinotallow=classpath:/mapper/*.xmlmybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

图片图片qtB28资讯网——每日最新资讯28at.com

前端代码qtB28资讯网——每日最新资讯28at.com

1、resources/static目录下,新增静态文件index.html;qtB28资讯网——每日最新资讯28at.com

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><div id="testContent">    <form id="registeForm" name="registe" method="post" action="/person//registe" enctype="multipart/form-data"          target="_self">        登陆名:<input name="loginNo" type="text"/><br/>        姓名:<input name="userName" type="text"/><br/>        性别:<input name="sex" type="radio" value="男"/>男<input name="sex" type="radio" value="女"/>女<br/>        手机号码:<input name="phoneNumber" type="text"/><br/>        身份证号:<input name="IDCard" type="text"/><br/>        地址:<input name="address" type="text"/><br/>        门牌号:<input name="houseNumber" type="text"/><br/>        <input type="submit" value="提交" id="submitForm">    </form></div></body></html>

2、resources/templates目录上,新增home.html文件;qtB28资讯网——每日最新资讯28at.com

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8"/>    <title>主页</title>    <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script></head><body><div>    ID:<span id="personId" data-th-text="${id}" ></span></div><div id="personInfo">    <p>登陆名:<span></span></p>    <p>姓名:<span></span></p>    <p>性别:<span></span></p>    <p>手机号码:<span></span></p>    <p>身份证号:<span></span></p>    <p>地址:<span></span></p>    <p>门牌号:<span></span></p></div></body><script type="text/javascript">    var id=$('#personId').text();    $.ajax({        url: 'http://localhost:8080/person/'+id,        method: 'get',        success: function (res) {            console.log(res)            $('#personInfo p')[0].append(res.loginNo);            $('#personInfo p')[1].append(res.userName);            $('#personInfo p')[2].append(res.sex);            $('#personInfo p')[3].append(res.phoneNumber);            $('#personInfo p')[4].append(res.idcard);            $('#personInfo p')[5].append(res.address);            $('#personInfo p')[6].append(res.houseNumber);        }    })</script></html>

后端代码

1、PersonController.java

@Controller@RequestMapping("/person")public class PersonController {    @Autowired    private IPersonService personService;        @PostMapping("/registe")    public String registe(Person person, Model model) {        Integer id = this.personService.registe(person);        model.addAttribute("id", id);        return "home";    }    @GetMapping("/{id}")    @ResponseBody    public Person getPerson(@PathVariable("id") Integer id) {        Person person = this.personService.get(id);        return person;    }}

2、IPersonService.java

public interface IPersonService {    Integer registe(Person person);    Person get(Integer id);}

3、PersonServiceImpl.java

@Servicepublic class PersonServiceImpl implements IPersonService {    @Autowired    private PersonDao personDao;    @Override    public Integer registe(Person person) {         this.personDao.insert(person);        return person.getId();    }    @Override    public Person get(Integer id) {        Person persnotallow=personDao.selectById(id);        return person;    }}

4、PersonDao.java

@Mapperpublic interface PersonDao {    Integer insert(Person person);    Person selectById(Integer id);}

5、PersonMapper.xml

<?xml versinotallow="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.fanfu.dao.PersonDao">    <resultMap id="personMap" type="com.fanfu.entity.Person">        <result column="user_name" property="userName"></result>        <result column="login_no" property="loginNo"></result>        <result column="sex" property="sex"></result>        <result column="phone_number" property="phoneNumber"></result>        <result column="address" property="address"></result>        <result column="house_number" property="houseNumber"></result>        <result column="ID_card" property="IDCard"></result>        <result column="id" property="id"></result>    </resultMap>    <insert id="insert" parameterType="com.fanfu.entity.Person" keyProperty="id" keyColumn="id" useGeneratedKeys="true">        insert into sys_person(user_name, login_no, phone_number, sex, ID_card, address, house_number)        values (#{userName}, #{loginNo}, #{phoneNumber}, #{sex}, #{IDCard}, #{address}, #{houseNumber})    </insert>    <select id="selectById" resultMap="personMap">        select *        from sys_person        where id = #{id}    </select></mapper>

6、Person.java

@Slf4j@Datapublic class Person  { private Integer id; private String userName; private String loginNo; private String phoneNumber; private String sex; private String IDCard; private String address; private String houseNumber;}

本文链接:http://www.28at.com/showinfo-26-62357-0.htmlSpring Boot:如何快速集成Mybatis和Thymeleaf

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Android开发之渐变色,你学会了吗?

下一篇: 零基础入门Python与MongoDB:轻松实现数据管理

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

    在 Elasticsearch 中,function_score 可以让我们在查询的同时对搜索结果进行自定义评分。function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。近期
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的&ldquo;7天甘肃行&rdquo;直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,&ldquo;7
  • 认真聊聊东方甄选:如何告别低垂的果实

    来源:山核桃作者:财经无忌爆火一年后,俞敏洪和他的东方甄选依旧是颇受外界关心的&ldquo;网红&rdquo;。7月5日至9日,为期5天的东方甄选&ldquo;甘肃行&rdquo;首次在自有App内直播,
  • 信通院:小米、华为等11家应用商店基本完成APP签名及验签工作

    中国信通院表示,目前,小米、华为、OPPO、vivo、360手机助手、百度手机助手、应用宝、豌豆荚和努比亚等9家应用商店,以及抖音和快手2家新型应用分发平
  • 最薄的14英寸游戏笔记本电脑 Alienware X14已可以购买

    2022年1月份在国际消费电子展(CES2022)上首次亮相的Alienware新品——Alienware X14现在已经可以购买了,这款笔记本电脑被誉为世界上最薄的 14 英寸游戏笔
Top