Springboot实验二(用配置文件的方式整合Mybatis)仅供参考!

这篇具有很好参考价值的文章主要介绍了Springboot实验二(用配置文件的方式整合Mybatis)仅供参考!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1)articleList.html 效果如下:
Springboot实验二(用配置文件的方式整合Mybatis)仅供参考!

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head>
<meta charset="UTF-8">
<title>article 列表</title>
</head>
<body>
<form method="get" th:action="@{'/articles/list'}">
<!--th:action 相当于 action-->
<input type="submit" value="查询">
</form>
<table cellspacing="1">
<thead>
<tr>
<th>id</th>
<th>标题</th>
<th>内容</th>
<th>操作</th>
</tr>
</thead>
<!--
Thymeleaf 遍历格式如下:
<tr th:each="user : ${userList}">
<td th:text="${user.name}">xxx</td>
</tr>
-->
<tbody th:each="article:${articleList}">
<tr>
<td th:text="${article.id}"></td>
<td th:text="${article.title}"></td>
<td th:text="${article.content}"></td>
<td>
<a th:href="@{/article/findById(id=${article.id})}">查看详情</a>
</td>
</tr>
</tbody>
</table>
</body>
</html>

th:action属性: 用于设置查询表单的URL地址;
th:each属性: 指定了循环渲染的数据源和迭代变量;
th:text属性: 用于将变量的值渲染到HTML标签内部;
th:href属性: 指定了链接的URL地址,并使用${}语法将变量的值传递给后端接口。

(2**)articleDetail.html** 效果如下:

文章详情


评论列表:

  • 说:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head>
    <meta charset="UTF-8">
    <title>文章详情</title>
</head>
<body>
    <h2 th:text="${article.title}"></h2>
    <p th:text="${article.content}"></p>
    <hr>
    <h3>评论列表:</h3>
    <ul th:each="comment:${article.commentList}">
        <li>
            <span th:text="${comment.username}"></span> 说:
            <span th:text="${comment.content}"></span>
        </li>
    </ul>
</body>
</html>

(3)在 application.properties 配置 thymeleaf 页面信息:

spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

(4)pom.xml 中添加数据源依赖 —>druid-spring-boot-starter

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>

(5)创建实体类 ArticleComment,注意:此时实体类所在包为 domain。

public class Article {
    private int id;
    private String title;
    private String content;

    // getter and setter methods
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "Article{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", content='" + content + '\'' +
                '}';
    }
}
public class Comment {
    private int id;
    private String content;
    private String author;
    private int a_id;

    // getter and setter methods
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public int getA_id() {
        return a_id;
    }
    public void setA_id(int a_id) {
        this.a_id = a_id;
    }

    @Override
    public String toString() {
        return "Comment{" +
                "id=" + id +
                ", content='" + content + '\'' +
                ", author='" + author + '\'' +
                ", a_id=" + a_id +
                '}';
    }
}

(6)创建 Article 对应的 Mapper 接口 ArticleMapper,注意:此时接口类所在包为 mapper

@Repository
@Mapper
public interface ArticleMapper {
public Article findById(int id);
public List<Article> findAll();
}

(7)在 resources 路径下,创建 mapper 目录,并在其中创建 ArticleMapper.xml文件,实现 ArticleMapper 接口中对应的方法。

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tyut.mapper.ArticleMapper">

    <!-- 根据 id 查询一篇文章 -->
    <select id="findById" resultType="com.tyut.domain.Article" parameterType="int">
        SELECT id, title, content FROM t_article WHERE id = #{id}
    </select>

    <!-- 查询所有文章 -->
    <select id="findAll" resultMap="articleResultMap">
        SELECT id, title, content FROM t_article
    </select>

    <!-- 定义 Article 对象的 ResultMap -->
    <resultMap id="articleResultMap" type="com.tyut.domain.Article">
        <id column="id" property="id"/>
        <result column="title" property="title"/>
        <result column="content" property="content"/>
    </resultMap>

</mapper>

下面是对该 XML 文件中各个标签及其属性的解释:

  1. <mapper> 标签:定义 Mapper 文件,必须包含命名空间属性,指定该 Mapper 对应的 Java 包路径,如 namespace="com.tyut.mapper.ArticleMapper"

  2. <select> 标签:定义查询语句,可用于查询单个对象或多个对象,该标签必须指定 id 属性,指定该 SQL 语句的唯一标识符。

  • resultType 属性:指定该 SQL 语句的结果类型,如 resultType="com.tyut.domain.Article"

  • parameterType 属性:指定该 SQL 语句的参数类型,如 parameterType="int"

  • SQL 语句:SELECT 语句,用于查询数据表中的数据。

  1. <id> 标签:定义主键字段映射,用于表示该属性为数据库表的主键。
  • column 属性:指定该属性映射的数据库字段名称。

  • property 属性:指定该属性的 Java 对象属性名称。

  1. <result> 标签:定义普通字段映射,用于表示该属性为数据库表的普通列字段。
  • column 属性:指定该属性映射的数据库列名称。

  • property 属性:指定该属性的 Java 对象属性名称。

  1. <resultMap> 标签:定义映射关系,可用于定义复杂的字段映射,包括主键字段映射和普通字段映射。
  • id 属性:指定该 resultMap 的唯一标识符。

  • type 属性:指定该 resultMap 对应的 Java 类型。

  • <id> 子标签和 <result> 子标签:用于定义主键字段映射和普通字段映射,其中子标签属性同上述解释。

(8)在 application.properties 中配置数据库、数据源、mapper 映射等相关配置:(结合自身电脑情况修改)

spring.datasource.url=jdbc:mysql://localhost:3306/springboottest
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.druid.db-type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=20
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-active=100
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.tyut.domain

(9)创建 ArticleController,用于进行请求接受和转发,注意:此时控制类所在包为 controller

@Controller
@RequestMapping("/articles")
public class ArticleController {

    @Autowired
    private ArticleMapper articleMapper;

    // 查询所有文章
    @GetMapping("/list")
    public String findAll(Model model) {
        List<Article> articleList= articleMapper.findAll();
        model.addAttribute("articleList", articleList);
        return "article/list"; // 返回视图模板 "article/list"
    }

    // 根据 id 查询单篇文章
    @GetMapping("/{id}")
    public String findById(@PathVariable int id, Model model) {
        Article article = articleMapper.findById(id);
        model.addAttribute("article", article);
        return "article/detail"; // 返回视图模板 "article/detail"
    }

}

(10)在 config 包下创建 MyConfig 类,重写 WebMvcConfigurer 自动配置类,实现 articleList 页面的路由注册。

@Configuration
public class MyConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/articles/list").setViewName("articleList");
    }
}

当用户在浏览器中访问"/articles/list"时,Spring MVC将会自动将请求路由到"articleList.html"这个视图模板上,完成页面的渲染和展示。这个视图模板对应的是控制器方法中返回的字符串。在这个例子中,控制器方法返回"articleList"字符串,即"articleList.html"视图模板的名称,Spring MVC自动将该字符串解析为对应的视图模板,将其展示在用户浏览器上。文章来源地址https://www.toymoban.com/news/detail-474810.html

到了这里,关于Springboot实验二(用配置文件的方式整合Mybatis)仅供参考!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置文件记录

    Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置xml文件记录 spring-mybatis.xml

    2024年01月22日
    浏览(56)
  • SpringBoot整合WebSocket的两种方式及微服务网关Gateway配置

    项目中后台微服务需要向前端页面推送消息,因此不可避免的需要用到WebSocket技术。SpringBoot已经为WebSocket的集成提供了很多支持,只是WebSocket消息如何通过微服务网关Spring Cloud Gateway向外暴露接口,实际开发过程中遇到了很多问题。微服务框架本身是作为一个平台为各种服务

    2024年02月03日
    浏览(47)
  • Spring整合Mybatis方式一 - 常规整合 - 注册映射器

    导包( mybatis-spring 、mysql-connector-java、mybatis、spring-webmvc等) 实体类 DAO层两个文件(接口、xml文件);Service层的接口 第一种:xml 第二种:annotation方式 点击查看代码 MapperFactoryBean注册映射器的最大问题,就是需要一个个注册所有的映射器,而实际上mybatis-spring提供了扫描包

    2024年03月27日
    浏览(44)
  • 【SpringBoot快速入门】(2)SpringBoot的配置文件与配置方式详细讲解

    之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开始,我们开始学习SpringBoot配置文件。接下来,我们逐步开始学习,本教程所有示例

    2024年02月03日
    浏览(38)
  • SpringBoot入门篇3 - 整合junit、整合mybatis、基于SpringBoot实现ssm整合

    目录 Spring整合JUnit  SpringBoot整合JUnit 测试类注解:@SpringBootTest 作用:设置JUnit加载的SpringBoot启动类 ①使用spring initializr初始化项目的时候,添加依赖。  ②设置数据源application.yml 注意: SpringBoot版本低于2.4.3,Mysql驱动版本大于8.0时,需要在url连接串中配置时区。 ③定义数据

    2024年02月10日
    浏览(45)
  • 【SpringBoot篇】SpringBoot整合Mybatis实战

    🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 Spring Boot可以非常方便地集成MyBatis来实现对数据库的访问,从而快速搭建项目持久层。如果你也想利用Spring Boot整合MyBatis,本文将为你详细讲解整合过

    2024年02月05日
    浏览(67)
  • 【SpringBoot】SpringBoot整合Mybatis、druid

    🌕博客x主页:己不由心王道长🌕! 🌎文章说明:SpringBoot🌎 ✅系列专栏:spring 🌴本篇内容:基于SpringBoot整合Mybatis、druid🌴 ☕️每日一语:有时候,没有下一次,没有机会重来,没有暂停继续。有时候,错过了现在,就永远永远的没机会了。☕️ 🕤作者详情:作者是一名

    2024年02月10日
    浏览(43)
  • springboot整合mybatis报错

    org/mybatis/spring/boot/autoconfigure/MybatisDependsOnDatabaseInitializationDetector has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 意思就是编译时使用了61.0版本,执行时的JDK/JRE使用了52.0版本。两个办法: 升级一

    2024年02月13日
    浏览(46)
  • SpringBoot整合junit&mybatis

    回顾 Spring 整合 junit 使用 @RunWith 注解指定运行器,使用 @ContextConfiguration 注解来指定配置类或者配置文件。而 SpringBoot 整合 junit 特别简单,分为以下三步完成 在测试类上添加 SpringBootTest 注解 使用 @Autowired 注入要测试的资源 定义测试方法进行测试 创建一个名为 springboot_07_

    2023年04月09日
    浏览(64)
  • Mybatis与Springboot的整合

    1.导入sprinboot依赖,数据库连接依赖,mybatis依赖,junit依赖 2.编写mybatis核心配置文件(yml) 3.配置mapper映射文件,注意namespace 必须指定对应mapper接口的权限定类名,而且映射文件目录结构要与mapper接口一致,映射文件去掉xml的名称与mapper接口名称一致。 4.编写mapper接口 5.测试

    2024年01月20日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包