您的位置:首页 > 编程语言 > Java开发

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

2018-03-13 17:03 861 查看

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.domain4、在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的增删查改的注解还需要多多学习,这个例子使用的都是比较基本的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐