从零开始学习SpringBoot——04.mybatis使用(注解版)

1.文件组织结构

在这里插入图片描述

2.建立Maven项目,写pom文件

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.player</groupId>
	<artifactId>springboot-web</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>springboot-web</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.6</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>11</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-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		
		<!-- 使用thymeleaf 模板 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
		
		<!-- 添加mybatis 依赖 -->
		<dependency>
		    <groupId>org.mybatis.spring.boot</groupId>
		    <artifactId>mybatis-spring-boot-starter</artifactId>
		    <version>2.2.2</version>
		</dependency>
		<!-- 驱动 -->
		<dependency>
	        <groupId>mysql</groupId>
	        <artifactId>mysql-connector-java</artifactId>
	    </dependency>
		
	</dependencies>



</project>


3.实体User类

package com.player.xml.entity;

import java.io.Serializable;

public class User implements Serializable{
	private static final long serialVersionUID = 1L;
	private long id;
	private String username;
	private String nickName;
	private String sex;
	
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getNickName() {
		return nickName;
	}
	public void setNickName(String nickName) {
		this.nickName = nickName;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", nickName=" + nickName + ", sex=" + sex + "]";
	}
	
	
}



4.mapper接口

package com.player.annotation.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.player.annotation.entity.User;

public interface UserMapper {
	
	@Select("SELECT * FROM user")
	@Results({
		@Result(property = "sex",  column = "sex"),
		@Result(property = "username",  column = "username"),
		@Result(property = "nickName", column = "nick_name")
	})
	public List<User> getAll();
	
	
	@Select("SELECT * FROM user where id= #{id}")
	@Results({
		@Result(property = "sex",  column = "sex"),
		@Result(property = "username",  column = "username"),
		@Result(property = "nickName", column = "nick_name")
	})
	public User getUserById(long id);
	
	@Insert("INSERT INTO user(username,nick_name,sex) VALUES(#{username}, #{nickName}, #{sex})")
	public int save(Map<String,Object> map);
	
	@Update("UPDATE user SET username=#{username},nick_name=#{nickName} WHERE id =#{id}")
	public int update(Map<String,Object> map);
	
	@Delete("DELETE FROM user WHERE id =#{id}")
	public int delete(long id);
}


5.全局配置application.properties

#server.port=8880

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

spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username = root
spring.datasource.password = 123456

6.UserController

package com.player.xml.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import com.player.xml.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.player.xml.entity.User;

@RestController
public class UserController {

	@Autowired
	private UserMapper userMapper;
	
	@RequestMapping("/getAll")
	public Object getAllList() throws Exception{
		List<User> ulist = userMapper.getAll();
		System.out.println("ulist="+ulist);
		return ulist;
	}
	
	/**
	 * 这个{id}是restful 风格的请求
	 * @param uid
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/user/{id}")
	public Object getUserById(@PathVariable("id") Long uid) throws Exception{
		System.out.println("uid"+uid);
		User u = userMapper.getUserById(uid);
		System.out.println("user="+u);
		return u == null ?"没有这个用户":u;
	}
	
	@RequestMapping("/save")
	public String saveUser() throws Exception{
		Map<String, Object> map = new HashMap<>();
		map.put("username", "userName"+UUID.randomUUID().toString().replaceAll("-", ""));
		map.put("nickName", "nick"+UUID.randomUUID().toString().replaceAll("-", ""));
		map.put("sex", new Random().nextInt(10) %2 == 1 ? "man":"woman");
		System.out.println("map="+map);
		int rest = userMapper.save(map);
		return rest == 1?"成功"+map:"失败";
	}
	
	@RequestMapping("/update")
	public String updateUser() throws Exception{
		Map<String, Object> map = new HashMap<>();
		map.put("username", "userName"+UUID.randomUUID().toString().replaceAll("-", ""));
		map.put("nickName", "nick"+UUID.randomUUID().toString().replaceAll("-", ""));
		map.put("id", new Random().nextInt(5));
		System.out.println("map="+map);
		int rest = userMapper.update(map);
		return rest == 1?"成功"+map:"失败";
	}
	
	@RequestMapping("/del/{id}")
	public String delUser (@PathVariable("id") Long id) throws Exception{
		int rest = userMapper.delete(id);
		return rest == 1?"成功":"失败";
	}
}



7.运行

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值