spring+mybatis实现图书管理系统

以下是“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实现图书管理系统

基础教程推荐