Spring boot Mybatis 整合

本文档详细介绍了如何创建一个SpringBoot项目,并集成Mybatis-Plus进行数据库操作。从创建项目到编写DAO、Mapper、Service和Controller,每个步骤都清晰展示,包括数据库配置、实体类、Mapper接口和XML文件,最后展示了程序入口和运行方式。

步骤:
1.创建一个springboot项目:

这里写图片描述

2.创建项目的文件结构以及jdk的版本

这里写图片描述

3.选择项目所需要的依赖

这里写图片描述
然后点击finish

5.看一下文件的结构:


6.查看一下pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.6.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>anany</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>anany</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<!--<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.45</version>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus</artifactId>
			<version>3.3.2</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

7.项目不使用application.properties文件 而使用更加简洁的application.yml文件:
将原有的resource文件夹下的application.properties文件删除,
文件的内容如下:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=x5
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf-8


mybatis.mapper-locations=classpath:mapper/*.xml

8.创建数据库:

 9.创建controller:

package com.example.anany.controller;

import com.example.anany.entity.Student;
import com.example.anany.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

//@Controller    @RestController = @Controller + @ResponseBody
@RestController //springboot方法才可用,
public class StudentController {

    @Autowired
    StudentService ss;


    @RequestMapping("query")
    //public List<Student> query();
    //spring boot controller方法返回值可以自动转json,ssm框架不行
    public List<Student> query(Student student,Integer pageNo){
        List<Student> students = ss.query(student,pageNo);
        //System.out.println(students);
        return students;
    }

    @RequestMapping("add")
    //public void add(Student student);
    public String add(Student student){
        ss.add(student);
        return "1";
    }

    @RequestMapping("update")
    //public void update(Student student);
    public void update(Student student){
        ss.update(student);
    }

    @RequestMapping("queryById")
    //public Student queryById(Integer id);
    public Student queryById(Integer id){
        Student student = ss.queryById(id);
        System.out.println(student);
        return student;
    }

    @RequestMapping("delete")
    //public void delete(Integer id);
    public void delete(Integer id){
        ss.delete(id);
    }


}

 9.创建service:

package com.example.anany.service;

import com.example.anany.entity.Student;

import java.util.List;

public interface StudentService {

    public List<Student> query(Student student,Integer pageNo);

    public void add(Student student);

    public void update(Student student);


    public Student queryById(Integer id);


    public void delete(Integer id);
}

 9.创建service.impl:

package com.example.anany.service.impl;

import com.example.anany.dao.StudentDao;
import com.example.anany.entity.Student;
import com.example.anany.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    StudentDao dao;

    @Override
    public List<Student> query(Student student,Integer pageNo) {
        return dao.query(student,pageNo);
    }

    @Override
    public void add(Student student) {
        dao.add(student);
    }

    @Override
    public void update(Student student) {
        dao.update(student);
    }

    @Override
    public Student queryById(Integer id) {
        Student student = dao.queryById(id);
        return student;
    }

    @Override
    public void delete(Integer id) {
        dao.delete(id);
    }


}

 10.创建dao/mapper:

package com.example.anany.dao;

import com.example.anany.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentDao {
    public List<Student> query(@Param("student") Student student, @Param("pageNo") Integer pageNo);

    public void add(Student student);

    public void update(Student student);

    public Student queryById(Integer id);

    public void delete(Integer id);
}

  11.创建dao/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.anany.dao.StudentDao">
    <!--表单显示-->
    <select id="query" resultType="com.example.anany.entity.Student">
        select id,name,email,age from student1
        <where>
            <if test="student.name !=null and student.name != ''">
                and name=#{student.name}
            </if>
            <if test="student.email != null and student.email != ''">
                and email=#{student.email}
            </if>
        </where>
        <if test="pageNo != null and pageNo != ''">
            limit 0,#{pageNo}
        </if>
    </select>
    <insert id="add">
        insert into student1(name,email,age) values (#{name},#{email},#{age})
    </insert>
    <update id="update">
        update student1 set name=#{name},email=#{email},age=#{age} where id=#{id}
    </update>
    <select id="queryById" resultType="com.example.anany.entity.Student">
        select id,name,email,age from student1 where id=#{id}
    </select>
    <delete id="delete">
        delete from student1 where id=#{id}
    </delete>

</mapper>
        

  12.程序入口,创建项目的时候系统自动创建的:

package com.example.anany;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
//不用写配置文件了,直接用这个注解,就可以找到dao层的位置了
@MapperScan({"com.example.anany.dao"})
public class AnanyApplication {

	public static void main(String[] args) {
		SpringApplication.run(AnanyApplication.class, args);
	}

}

13.在运行的时候我们只需要在浏览器中输入地址即可

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
Spring Boot 项目中整合 MyBatis 是一种常见的做法,可以显著简化数据库操作并提高开发效率。以下是详细的配置和使用方法。 ### 添加依赖 首先,在 `pom.xml` 文件中添加必要的依赖项,包括 MyBatis 的启动器和 MySQL 驱动程序[^3]: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` ### 配置数据源 接下来,在 `application.properties` 或 `application.yml` 文件中配置数据源信息。这里以 `application.properties` 为例: ```properties spring.datasource.url=jdbc:mysql://127.0.0.1:3306/your_database spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` ### 配置 MyBatis 如果需要自定义 MyBatis 的行为,可以在 `application.properties` 中添加以下配置来指定 MyBatis 映射文件的位置: ```properties mybatis.mapper-locations=classpath:mapper/*.xml ``` 此外,还可以创建一个 `SqlMapConfig.xml` 文件来进行更复杂的配置,例如定义别名和加载映射文件[^5]: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <package name="com.example.pojo"/> </typeAliases> <mappers> <package name="com.example.mapper"/> </mappers> </configuration> ``` ### 创建 Mapper 接口和 XML 文件 创建一个接口来定义 SQL 查询方法,例如: ```java @Mapper public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User selectById(Long id); } ``` 同时,确保在对应的包路径下创建 XML 映射文件,例如 `UserMapper.xml`: ```xml <mapper namespace="com.example.mapper.UserMapper"> <select id="selectById" resultType="com.example.pojo.User"> SELECT * FROM users WHERE id = #{id} </select> </mapper> ``` ### 使用 MyBatis 最后,在服务层注入并使用 Mapper 接口来执行数据库操作: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.selectById(id); } } ``` 通过以上步骤,就可以成功地在 Spring Boot 项目中整合 MyBatis,并实现基本的数据库操作功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值