SpringBoot----用MyBatis注解实现数据的增删查改

SpringBoot----用MyBatis注解实现数据的增删查改

1、新建一个Maven项目,使用jdk1.8,在pom.xml中添加依赖如下:

<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.etc</groupId>
	<artifactId>springboot6</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>springboot6</name>
	<url>http://maven.apache.org</url>
<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.7.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<!-- SpringBoot导入的jar包 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		 <!-- freemarker模版 -->
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-freemarker</artifactId>  
        </dependency>
		<!-- jdbc -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
		<!-- mysql -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.35</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.0</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

2、在com.etc.springboot6包下新建一个Application.java启动类如下:

package com.etc.springboot6;


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

/**
 * @Description:启动类
 * @author zoey
 * @date:2018年3月13日
 */
@SpringBootApplication
@ComponentScan(basePackages="com.etc.*")
@MapperScan("com.etc.*")
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
		System.out.println("启动完成。。。。。。。。。");
	}
}	

3、新建src/main/resources文件夹,在文件夹下新建application.properties文件如下:

###############################数据库配置###############################
spring.datasource.name=test
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver

###########################mybatis配置###############################
#全局映射器启用缓存
mybatis.configuration.cache-enabled=true
#查询时,关闭关联对象及时加载以提高性能
mybatis.configuration.lazy-loading-enabled=false
#按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能
mybatis.configuration.aggressive-lazy-loading=false
#允许返回不同的结果集以达到通用的效果
mybatis.configuration.multiple-result-sets-enabled=true
#对于批量更新操作缓存SQL以提高性能
mybatis.configuration.default-executor-type=REUSE
#数据库执行超时时间
mybatis.configuration.default-statement-timeout=25000
mybatis.type-aliases-package=com.etc.domain

4、在com.etc.domain包下新建User.java类如下:

package com.etc.domain;

/**
 * @Description:用户实体类
 * @author zoey
 * @date:2018年3月13日
 */
public class User {
	private int id;
	private String name;
	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 User(String name) {
		super();
		this.name = name;
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + "]";
	}
	
	
	
}

5、在com.etc.mapper包下新建UserMapper.java类如下:

package com.etc.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.etc.domain.User;

/**
 * @Description:利用Mybatis的注解实现数据的增删查改
 * @author zoey
 * @date:2018年3月13日
 */
@Mapper
public interface UserMapper {
	
	@Select("select * from user")
	List<User> findAll();

	@Select("select * from user where id = #{id}")
	User findById(@Param("id") int id);
	
	@Insert("insert into user(name) values(#{name})")
	int insert(@Param("name") String name);

	@Update("update user set name=#{name} where id=#{id}")
	int update(User user);

	@Delete("delete from user where id=#{id}")
	int delete(int id);
}

6、在com.etc.service包下新建UserService.java类如下:

package com.etc.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.etc.domain.User;
import com.etc.mapper.UserMapper;
/**
 * @Description:Service层:调用UserMapper中的方法,实现增删查改
 * @author zoey
 * @date:2018年3月13日
 */
@Service//需要添加注解,否则无法找到UserService.java类
public class UserService {
	@Autowired
	private UserMapper userMapper;
	
	public List<User> findAll(){
		return userMapper.findAll();
	}
	
	public User findById(int id) {
		return userMapper.findById(id);
	}
	
	public int insert(String name) {
		return userMapper.insert(name);
	}
	
	public int update(User user) {
		return userMapper.update(user);
	}
	
	public int delete(int id) {
		return userMapper.delete(id);
	}
}

7、在com.etc.controller包下新建UserController.java类如下:

package com.etc.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.etc.domain.User;
import com.etc.service.UserService;

/**
 * @Description:Controller层:调用Service层的代码实现数据的增删查改
 * @author zoey
 * @date:2018年3月13日
 */
@RestController
@RequestMapping("/users")
public class UserController {
	@Autowired
	private UserService userService;
	
	/**
	 * @Description:查找所有用户
	 * 访问地址:http://localhost:8080/users/findAll
	 * @return
	 * @author:zoey
	 * @date:2018年3月13日
	 */
	@RequestMapping("/findAll")
	public List<User> findAll() {
		System.out.println("查询所有");
		List<User> userList = userService.findAll();
		for(User user:userList) {
			System.out.println("用户:"+user);
		}
		return userList;
	}
	
	/**
	 * @Description:根据用户ID查找用户
	 * 访问地址:http://localhost:8080/users/findById?id=2
	 * @param id
	 * @return
	 * @author:zoey
	 * @date:2018年3月13日
	 */
	@RequestMapping("/findById")
	public User findById(@RequestParam("id") int id) {
		System.out.println("根据用户id查询用户");
		User user = userService.findById(id);
		System.out.println("用户:"+user);
		return user;
	}
	
	/**
	 * @Description:新增用户
	 * 访问地址:http://localhost:8080/users/insert?name=aaa
	 * @param name
	 * @return
	 * @author:zoey
	 * @date:2018年3月13日
	 */
	@RequestMapping("/insert")
	public String insert(@RequestParam("name") String name) {
		System.out.println("新增用户");
		int result = userService.insert(name);
		if(result==1) {
			System.out.println("新增成功");
			return "success";
		}else {
			System.out.println("新增失败");
			return "error";
		}
	}
	/**
	 * @Description:修改用户
	 * 访问地址:http://localhost:8080/users/update?id=2&name=zoey
	 * @param id
	 * @param name
	 * @return
	 * @author:zoey
	 * @date:2018年3月13日
	 */
	@RequestMapping("/update")
	public String update(@RequestParam("id") int id,@RequestParam("name") String name) {
		System.out.println("修改用户");
		User user = new User();
		user.setId(id);
		user.setName(name);
		System.out.println(user);
		int result = userService.update(user);
		if(result==1) {
			System.out.println("修改成功");
			return "success";
		}else {
			System.out.println("修改失败");
			return "error";
		}
	}
	
	/**
	 * @Description:根据用户ID修改用户
	 * 访问地址:http://localhost:8080/users/delete?id=2
	 * @param id
	 * @return
	 * @author:zoey
	 * @date:2018年3月13日
	 */
	@RequestMapping("/delete")
	public String delete(@RequestParam("id") int id) {
		System.out.println("删除用户");
		int result = userService.delete(id);
		if(result==1) {
			System.out.println("删除成功");
			return "success";
		}else {
			System.out.println("删除失败");
			return "error";
		}
	}
	
}

8、运行:

选中启动类Application.java-->Run As-->Java Application

在页面访问:

(1)查看所有用户:http://localhost:8080/users/findAll


(2)根据用户ID查找用户信息:http://localhost:8080/users/findById?id=2


(3)新增用户:http://localhost:8080/users/insert?name=aaa


(4)根据用户ID修改用户名:http://localhost:8080/users/update?id=2&name=zoey


(5)根据用户ID删除用户:http://localhost:8080/users/delete?id=2


(6)最终数据库中的结果为:


总结:

1、之前SpringBoot和MyBatis配合实现增删查改,使用的是Mybatis的配置文件xxxMapper.xml,在配置文件中编写SQL语句,实现数据的增删查改,现在,没有使用配置文件,而是直接在xxxMapper.java类的方法中使用Mybatis增删查改的注解,从而实现对数据的增删查改,比之前要方便一些,直接写在代码上面,但是修改也比之前要麻烦一些。

2、MyBatis的增删查改的注解还需要多多学习,这个例子使用的都是比较基本的。

猜你喜欢

转载自blog.csdn.net/zz2713634772/article/details/79542518
今日推荐