Spring Boot实战|整合mybatis

本文详细介绍如何在SpringBoot项目中整合Mybatis,包括引入依赖、配置数据源、创建实体类、DAO层及Controller层,实现数据库的增删改查操作。

《JavaEE开发的颠覆者: Spring Boot实战》系列读书笔记

Spring Boot整合Mybatis


Mybatis 初期使用比较麻烦,需要各种配置文件、实体类、Dao 层映射关联、还有一些其它配置。当然 Mybatis 也发现了这种弊端,初期开发了generator可以根据表结果自动生产实体类、配置文件和 Dao 层代码,可以减轻一部分开发量。
后来也可以使用注解了,自动管理 Dao 层和配置文件等,mybatis-spring-boot-starter 就是 Spring Boot+ Mybatis 可以完全注解不用配置文件,也可以简单配置轻松上手。

开始使用

引入依赖

  • 在pom文件引入mybatis-spring-boot-starter的依赖:

    <dependency>
    			<groupId>org.mybatis.spring.boot</groupId>
    			<artifactId>mybatis-spring-boot-starter</artifactId>
    			<version>2.0.0</version>
    		</dependency>
    

    引入数据库连接依赖:

    <dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<version>8.0.16</version>
    		</dependency>
    

引入数据源

  • application.properties配置文件中引入数据源:

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/XX?\
      useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false
    spring.datasource.username=XX
    spring.datasource.password=XX
    mybatis.configuration.map-underscore-to-camel-case=true
    server.port=8080
    

    springboot 会自动加载 spring.datasource.* 相关配置,数据源就会自动注入到sqlSessionFactory 中,sqlSessionFactory 会自动注入到 Mapper 中,这样就可以访问数据了

创建数据库表

  • 在这里插入图片描述

    创建实体:

    public class CityInfo {
     
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        private String city;
    
        public CityInfo(int id, String city) {
            this.id = id;
            this.city = city;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
    }
    

dao层

  • 数据访问,主要对sql进行操作。

    public interface CityMapper {
    	
    	@Select("SELECT * FROM city")
    	List<CityInfo> getAll();
    	
    	@Select("SELECT * FROM city WHERE id = #{id}")
    	CityInfo getOne(int id);
    
    	@Insert("INSERT INTO city(city) VALUES(#{city})")
    	void insert(CityInfo cityInfo);
    
    	@Update("UPDATE city SET city=#{city} WHERE id =#{id}")
    	void update(CityInfo cityInfo);
    
    	@Delete("DELETE FROM city WHERE id =#{id}")
    	void delete(int id);
    
    }
    

controller层

  • 使用的时候把Mapper 层当作普通的类注入进入就可以了

        /**
         * mybatis 测试增删改查
         */
        @RequestMapping(value = "Insert", method = RequestMethod.GET)
        public Result<CityInfo> mybatisInsert() throws Exception {
            CityInfo cityInfo = new CityInfo(1,"911");
            cityMapper.insert(cityInfo);
            return new Result<CityInfo>(cityInfo);
        }
        @RequestMapping(value = "Query", method = RequestMethod.GET)
        public Result<List<CityInfo>> mybatisQuery() throws Exception {
            List<CityInfo> cityInfos = cityMapper.getAll();
            return new Result<List<CityInfo>>(cityInfos);
        }
        @RequestMapping(value = "Update", method = RequestMethod.GET)
        public Result<CityInfo> mybatisUpdate() throws Exception {
            CityInfo cityInfo = cityMapper.getOne(3);
            System.out.println(cityInfo.toString());
            cityInfo.setCity("深圳");
            cityMapper.update(cityInfo);
            return new Result<CityInfo>(cityInfo);
        }
    

    注意在启动类中添加对 mapper 包扫描@MapperScan(“路径”)。

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值