spring+mybatis实现图书管理系统

以下是“spring+mybatis实现图书管理系统”的完整攻略。

1. 环境准备

首先需要准备好开发环境,包括以下工具和框架:

  • JDK(Java Development Kit): 用于编译和运行Java程序的开发工具包。
  • Eclipse(或其他Java开发工具):用于编写和调试Java代码的集成开发环境(IDE)。
  • Maven:Java项目的构建工具,用于管理项目依赖。
  • Spring Framework:Java企业级应用开发框架,提供了依赖注入、AOP等功能。
  • MyBatis:Java对象关系映射(ORM)框架,用于简化Java应用程序与关系数据库之间的交互。

2. 创建项目

使用Eclipse创建一个新的Maven项目,并配置相关依赖。在pom.xml中加入以下代码:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.7.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.2</version>
    </dependency>
</dependencies>

3. 创建数据库表

在MySQL数据库中创建一个名为“book”的数据库,并在该数据库中创建一个名为“book_info”的表,用于存储图书信息,表结构如下:

CREATE TABLE book_info (
    id INT(11) NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL DEFAULT '',
    author VARCHAR(50) NOT NULL DEFAULT '',
    price FLOAT NOT NULL DEFAULT 0,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4. 编写实体类

在Java项目中创建一个名为“com.example.entity”的包,并在该包中创建一个名为“Book”的类,用于映射数据库表“book_info”。

public class Book {
    private int id;
    private String name;
    private String author;
    private float price;

    // getter和setter方法
}

5. 编写Mapper接口

在Java项目中创建一个名为“com.example.mapper”的包,并在该包中创建一个名为“BookMapper”的接口,用于定义访问“book_info”表的数据操作方法。

public interface BookMapper {
    public List<Book> findAll();
    public Book findById(int id);
    public void insert(Book book);
    public void update(Book book);
    public void delete(int id);
}

6. 编写Mapper XML文件

在Java项目中创建一个名为“com.example.mapper”的包,并在该包中创建一个名为“BookMapper.xml”的文件,用于实现Mapper接口中定义的数据操作方法。

<mapper namespace="com.example.mapper.BookMapper">
    <select id="findAll" resultType="com.example.entity.Book">
        SELECT * FROM book_info
    </select>
    <select id="findById" parameterType="int" resultType="com.example.entity.Book">
        SELECT * FROM book_info WHERE id = #{id}
    </select>
    <insert id="insert" parameterType="com.example.entity.Book">
        INSERT INTO book_info(name, author, price)
        VALUES(#{name}, #{author}, #{price})
    </insert>
    <update id="update" parameterType="com.example.entity.Book">
        UPDATE book_info SET name=#{name},
        author=#{author},price=#{price}
        WHERE id = #{id}
    </update>
    <delete id="delete" parameterType="int">
        DELETE FROM book_info WHERE id = #{id}
    </delete>
</mapper>

7. 配置Spring

在Java项目中创建一个名为“com.example.config”的包,并在该包中创建一个名为“SpringConfig”的类,用于配置Spring框架相关参数。

@Configuration
@MapperScan("com.example.mapper") // 扫描Mapper接口文件
public class SpringConfig {

    @Bean
    public DataSource dataSource(){
        // 配置数据源相关参数
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/book?useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        return dataSource;
    }

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setTypeAliasesPackage("com.example.entity");
        Resource resource = new PathMatchingResourcePatternResolver().getResource("classpath:com/example/mapper/BookMapper.xml");
        sessionFactory.setMapperLocations(new Resource[] { resource });
        return sessionFactory.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate() throws Exception {
        SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory());
        return template;
    }
}

8. 编写Controller

在Java项目中创建一个名为“com.example.controller”的包,并在该包中创建一个名为“BookController”的类,用于处理前端请求。

@RestController
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookMapper bookMapper;

    @GetMapping("/all")
    public List<Book> findAll() {
        return bookMapper.findAll();
    }

    @GetMapping("/{id}")
    public Book findById(@PathVariable int id) {
        return bookMapper.findById(id);
    }

    @PostMapping("")
    public String insert(@RequestBody Book book) {
        bookMapper.insert(book);
        return "success";
    }

    @PutMapping("")
    public String update(@RequestBody Book book) {
        bookMapper.update(book);
        return "success";
    }

    @DeleteMapping("/{id}")
    public String delete(@PathVariable int id) {
        bookMapper.delete(id);
        return "success";
    }
}

9. 测试

使用浏览器或Postman等工具发送HTTP请求,即可进行增删改查等操作。

示例1:查询所有图书信息

请求URL: http://localhost:8080/book/all

响应结果:

[
    {
        "id":1,
        "name":"Java编程思想",
        "author":"Bruce Eckel",
        "price":98.5
    },
    {
        "id":2,
        "name":"深入浅出MySQL",
        "author":"周志明",
        "price":58.9
    }
]

示例2:根据ID查询图书信息

请求URL: http://localhost:8080/book/1

响应结果:

{
    "id":1,
    "name":"Java编程思想",
    "author":"Bruce Eckel",
    "price":98.5
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring+mybatis实现图书管理系统 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • JavaScript封装axios的实现详解

    JavaScript封装axios的实现详解 Axios是基于Promise的HTTP客户端,可以在浏览器和Node.js中使用。它简单易用、功能强大,逐渐成为前端开发中最常用的HTTP请求库之一。本篇文章将详细讲解如何封装axios,并提供两个示例进行说明。 封装axios 安装axios 在开始封装axios之前,我们需要先安装它。可以使用npm来安装a…

    Java 2023年6月15日
    00
  • springboot 基于Tomcat容器的自启动流程分析

    Spring Boot 基于 Tomcat 容器的自启动流程分析 1. 概述 在 Spring Boot 应用程序中,Tomcat 是一个常用的内嵌式 Web 服务器,它可以很方便地帮助我们创建和启动 Web 应用程序。在本文中,我们将深入探究 Spring Boot 基于 Tomcat 容器的自启动流程。 2. Tomcat 自启动流程 在 Spring …

    Java 2023年6月15日
    00
  • 详解MyBatis工作原理

    详解MyBatis工作原理 MyBatis是一个流行的Java持久层框架,它通过将Java对象映射到数据库记录来操作数据库。本文将详细讲解MyBatis运作的原理。 MyBatis的三大组件 MyBatis框架主要由三个核心组件组成: SqlSessionFactoryBuilder:用于创建SqlSessionFactory。 SqlSessionFact…

    Java 2023年5月20日
    00
  • MyBatis @Param注解的实现

    MyBatis是一款非常优秀的Java ORM框架,它通过使用SQL映射文件,将Java对象和数据库表进行了映射。在MyBatis的映射文件中,我们使用#{}来表示占位符,用于传递参数。但是在实际的开发中,我们常常需要传递多个参数,如果使用#{},则其参数需要按照顺序的位置进行传递,这时就会比较麻烦。而@Param注解就是用来解决这个问题的。下面,我们将详细…

    Java 2023年5月20日
    00
  • springboot前端传参date类型后台处理的方式

    下面我会详细讲解如何在Spring Boot项目中处理前端传参的date类型。通常情况下,前端传参的date类型是字符串形式,而后台需要将其转化为Java的Date类型,并进行进一步的操作或存储。具体的步骤如下: 1. 在前端页面将日期转化为字符串 在前端页面上,我们需要将日期类型转化为字符串,一般使用JavaScript的Date对象的toISOStrin…

    Java 2023年5月20日
    00
  • Java的Struts框架报错“ChainConfigException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ChainConfigException”错误。这个错误通常由以下原因之一起: 配置错误:如果配置文件中没有正确配置,则可能会出现此错误。在这种情况下,需要检查文件以解决此问题。 链错误:如果链不正确,则可能会出现此错误。在这种情况下,需要检查链以解决此问题。 以下是两个实例: 例 1 如果配置文件中没有正确配…

    Java 2023年5月5日
    00
  • SpringBoot整合Hibernate Validator实现参数验证功能

    下面我将详细讲解“SpringBoot整合Hibernate Validator实现参数验证功能”的完整攻略,过程中将包含两条示例。 什么是Hibernate Validator Hibernate Validator是一款Java Bean验证框架,它提供了一套丰富的注解,使用这些注解可以很方便地实现对Java Bean字段的验证。在一些Web开发中,我们…

    Java 2023年5月20日
    00
  • 一个jsp+AJAX评论系统

    下面是一个jsp+AJAX评论系统的完整攻略。 前期准备 在开始创建一个jsp+AJAX评论系统之前,我们需要准备以下几个方面的内容: 后端语言。对于jsp+AJAX评论系统,我们使用的后端语言是Java。 数据库。我们需要使用数据库来存储和获取评论数据。常见的数据库有MySQL和Oracle等。 Web应用程序服务器。我们需要使用Web应用程序服务器来运行…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部