前后端分离之SpringBoot2.x整合mybatis实现数据库的增删改查操作(一)

1.新建springBoot2.x项目,添加mybatis,mysql等依赖,太过基础,这里不多介绍。

项目目录结构如下:


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

	<groupId>com.example</groupId>
	<artifactId>demo1</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>demo1</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</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>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</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>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		
			<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.6</version>
		</dependency>
		
		<!-- 热部署 -->
		<dependency>  
		     <groupId>org.springframework.boot</groupId>  
		     <artifactId>spring-boot-devtools</artifactId>  
		     <optional>true</optional>  
		 </dependency>
	</dependencies>
	

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


</project>

1.启动类开启包扫描,@MapperScan(“com.example.demo1.mapper”)
2.domain包 实体类User

package com.example.demo1.domain;

import java.util.Date;

public class User {
//	name,number,dgh,max_gh,weight
	private int id;
	
	private String name; //单板名称
	
	private int number;//数量
	
	private int dgh;  //典型功耗
	
	private int max_gh; //最大功耗
	
	private int weight; //重量

	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}

	public int getDgh() {
		return dgh;
	}

	public void setDgh(int dgh) {
		this.dgh = dgh;
	}

	public int getMax_gh() {
		return max_gh;
	}

	public void setMax_gh(int max_gh) {
		this.max_gh = max_gh;
	}

	public int getWeight() {
		return weight;
	}

	public void setWeight(int weight) {
		this.weight = weight;
	}



	
	
	
}

3.mapper层,数据库查询操作

package com.example.demo1.mapper;
import com.example.demo1.domain.User;
import java.util.List;
/*
 * 功能描述: 访问数据库
 */

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.type.JdbcType;
public interface UserMapper {
	 @Insert("INSERT INTO user(name,number,dgh,max_gh,weight) VALUES(#{name}, #{number}, #{dgh},#{max_gh},#{weight})")
	 @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")   //keyProperty java对象的属性;keyColumn表示数据库的字段
	 int insert(User user);
	 
	 
	 
	
//
   @Select("SELECT * FROM user")
   @Results({
       @Result(column = "name",property = "name")  //javaType = java.util.Date.class        
   })
   List<User> getAll();
// 
//   
//
   @Select("SELECT * FROM user WHERE id = #{id}")
   @Results({
   	 @Result(column = "name",property = "name")
   })
   User findById(Long id);
   
//通过单板名称进行查询
//   @Select("select * from user")
//   @Results(id="nameMap",value={
//		@Result(column = "name",property = "name") 	
//   })
//   List<User> selectAll();
//   @Select({"select * from where name = #{name}"})
//   @ResultMap(value="nameMap")
//   User findByName( String name);
   
   @Select("SELECT * FROM user WHERE name = #{name}")
   @Results({
   	 @Result(column = "name",property = "name")
   })
   User findByName(String name); 
   
//通过单板数量进行查询
   @Select("SELECT * FROM user WHERE number = #{number}")
   @Results({
   	 @Result(column = "name",property = "name")
   })
   User findByNumber(int number);
   

//  
//
   @Update("UPDATE user SET number=#{number} WHERE id =#{id}")
   void update(User user);
//
   @Delete("DELETE FROM user WHERE id =#{userId}")
   void delete(Long userId);

	
}

4.1

package com.example.demo1.service;

import org.apache.ibatis.annotations.Param;

import com.example.demo1.domain.User;
public interface UserService {
     public int add(User user);
    
}

4.1继承service的iml,实现去耦合,不懂得建议去看下设计模式

package com.example.demo1.service.impl;

import java.util.Date;

import com.example.demo1.domain.User;
import com.example.demo1.mapper.UserMapper;
import com.example.demo1.service.UserService;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class UserServiceImpl implements UserService{

	 @Autowired
	 private UserMapper userMapper;
	 
	@Override
	public int add(User user) {
		userMapper.insert(user);
		int id = user.getId();
		return id;
	}
//	@Override
//	public String addName(User user) {
//		userMapper.insert(user);
//		String name = user.getName();
//		return name;
//	}
	
	
	
	

	
	
}

5.controller层

package com.example.demo1.controller;
import com.example.demo1.domain.JsonData;
import com.example.demo1.domain.User;
import com.example.demo1.mapper.UserMapper;
import com.example.demo1.service.UserService;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**

 */
@RestController
@RequestMapping("/api/v1/user")
public class UserController {
	
	
	@Autowired
	private UserService userService;
	
	
	/**
	 * 功能描述: user 保存接口
	 * @return
	 */
	@GetMapping("add")
	public Object add(){
		User user = new User();

		user.setDgh(100);
		user.setMax_gh(99);
		user.setName("8080_u_p");
		user.setNumber(98);
		user.setWeight(97);
		int id = userService.add(user);
		
       return JsonData.buildSuccess(id);
	}
	
	@Autowired
	private UserMapper userMapper;
	@GetMapping("findAll")
	public Object findAll(){
       return JsonData.buildSuccess(userMapper.getAll());
	}
//	
//	
//	通过id进行查询
	@GetMapping("findById")
	public Object findById(long id){
       return JsonData.buildSuccess(userMapper.findById(id));
	}
	//通过名称查询
	@GetMapping("findByName")
	public Object findByName(@Param("name")String name){
		
		System.out.println(userMapper.findByName(name));
		System.out.println(String.valueOf(name));
		System.out.println(name.toString());
       return JsonData.buildSuccess(userMapper.findByName(name));
       
	}
	
	//通过数量查询
	@GetMapping("findByNumber")
	public Object findByNumber(int number)
	{
		return JsonData.buildSuccess(userMapper.findByNumber(number));
		
	}
	
	
//	
	@GetMapping("del_by_id")
	public Object delById(long id){
	userMapper.delete(id);
       return JsonData.buildSuccess();
	}
//	
	@GetMapping("update")
	public Object update(int id,int number){
		User user = new User();
		user.setNumber(number);
		user.setId(id);
		userMapper.update(user);
	    return JsonData.buildSuccess();
	}
	
	@GetMapping("test")
	public String toString()
	{
		return "hello world";
	}
//	
	
	
	
	
	
//	//测试事务
//	@GetMapping("transac")
//	public Object transac(){
//		int id = userService.addAccount();
//	    return JsonData.buildSuccess(id);
//	}
//	
//	
	
	
}

后续请看前后端分离之SpringBoot2.x整合mybatis实现数据库的增删改查操作(二)

猜你喜欢

转载自blog.csdn.net/qq_42338771/article/details/89646903