springboot+mybatis最新版注解配置实现CURD

最近开始学后端,然后直接上手了springboot+mybatis。然后就实现了一个小例子,花了我整整一天时间。在这做个小记录,也给在用最新版的同学一个参考。springboot整合mybatis时,我用的是mybatis3.x最新版的注解方式配置的,这样实现的接口看起来更简单点(确实简单点)。建项目啥的我在这就不说了,直接上主要配置吧。

applicaltion.properties的配置:

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
# 注意注意
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.xiangzhang.entity (表的实体类所在的包)
# 驼峰命名规范 如:数据库字段是  order_id 那么 实体字段就要写成 orderId
mybatis.configuration.map-underscore-to-camel-case=true

pom.xml的依赖:

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</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>
		<!-- MYSQL包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.46</version>
		</dependency>
		<!-- 引入第三方数据源 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.6</version>
		</dependency>
		<!-- 默认就内嵌了Tomcat 容器,如需要更换容器也极其简单-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- 测试包,当我们使用 mvn package 的时候该包并不会被打入,因为它的生命周期只在 test 之内-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

实体类User

package com.xiangzhang.entity;

import lombok.Data;
import java.io.Serializable;

@Data
public class User implements Serializable {
    private static final long serialVersionUID = 8655851615465363473L;

    private int id;
    private String name;
    private float hp;
    private float damage;

}

在这里用了Lombok的**@Data**注解功能,可以省去getter和setter的代码,可以减少不少的代码量,加快开发速度。lombok需要另外引入依赖。还要加载对应的lombok plugin插件。不然没法使用哦。

UserMapper:通过注解方式实现的接口

package com.xiangzhang.mapper;

import com.xiangzhang.entity.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 通过注解方式完成接口的实现
 */
@Mapper
public interface UserMapper {
    /**根据英雄id查询英雄属性
     * @param 传入的id
     * @return 查询的结果集
     */
    @Select("select * from hero where id = #{id}")
    List<User> returnById(@Param("id") int id);

    /**
     * 返回hero表中的所有数据
     * @return 所有结果集
     */
    @Select("select * from hero")
    List<User> returnResult();
    /**
     * 实现数据插入功能
     * @param name 英雄名
     * @param hp 英雄血量值
     * @param damage 英雄伤害值
     * @return 插入是否成功
     */
    @Insert("insert into hero(name, hp, damage) VALUES(#{name}, #{hp}, #{damage})")
    int insert(@Param("name") String name,@Param("hp") float hp,@Param("damage") float damage);

    /**
     *根据英雄id更新英雄名
     * @param name 英雄名
     * @param id 英雄id
     * @return 更新是否成功
     */
    @Update("update hero set name = #{name} where id = #{id}")
    int update(@Param("name") String name,@Param("id") int id);

    /**
     * 根据英雄id删除该英雄
     * @param id 英雄id
     * @return 删除是否成功
     */
    @Delete("delete from hero where id = #{id}")
    int delete(@Param("id") int id);
}

最后再来个测试类代码,结果用log方式输出,在控制台可以观察:

package com.xiangzhang;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.xiangzhang.entity.User;
import com.xiangzhang.mapper.UserMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
	private static final Logger log = LoggerFactory.getLogger(DemoApplicationTests.class);
	@Autowired
	private UserMapper userMapper;

	@Test
	public void test_curd() throws Exception{
		final int row1 = userMapper.insert("露娜",2500,4500);
		if(row1 == 1){
			log.info("[添加第一个结果] - [{}]","成功");
		}
		final int row2 = userMapper.insert("貂蝉",1200,5600);
		if(row2 == 1){
			log.info("[添加第二个结果] - [{}]","成功");
		}
		final List<User> user = userMapper.returnById(2);
		log.info("根据用户id查询 - [{}]",user);

		final int row3 = userMapper.update("狄仁杰",1);
		if(row3 == 1){
			log.info("[更新英雄名] - [{}]","成功");
		}

		final int row4 = userMapper.delete(11);
		if(row4 == 1){
			log.info("[删除英雄] - [{}]","成功");
		}

		final List<User> users = userMapper.returnResult();
		log.info("查询hero表的所有数据 - [{}]",users);
	}

}

在这里插入图片描述
如果对你有所帮助,记得点个赞哦。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值