Mybatis 第一节 SpringBoot整合Mybatis 注解方式

吃可爱长大的小学妹 提交于 2020-04-20 03:37:06

CREATE TABLE IF NOT EXISTS user (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(50) NULL DEFAULT NULL ,
  `age` INT(2) NOT NULL ,
  PRIMARY KEY (id)
)

pom文件

<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>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.2.RELEASE</version>
	</parent>


	<groupId>com.yxl</groupId>
	<artifactId>spring-boot-02</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-boot-02</name>
	<url>http://maven.apache.org</url>

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

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			
			<scope>test</scope>
		</dependency>
		
		<dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>2.1.1</version>
   </dependency>
		
		<!--web应用基本环境配置 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
	
		</dependency>

		<!-- 配置MySQL数据库 8.0版本 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.11</version>
			<!-- <scope>test</scope> -->
		</dependency>


	</dependencies>
	<build>
		<plugins>
			<!-- spring-boot-maven-plugin插件就是打包spring boot应用的 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>1.5.4.RELEASE</version>
			</plugin>
		</plugins>
	</build>
</project>

entity/User

package com.yxl.entity;
public class User {
    private int id;
    private String name;
    private int age;
    
    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 getAge() {   return age;    }

    public void setAge(int age) {   this.age = age;    }
}

dao/UserDao

package com.yxl.dao;

import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Results;
import com.yxl.entity.User;

@Mapper //1
public interface UserDao {
    @Results({ //2
            @Result(property = "id", column = "id"), //2
            @Result(property = "name", column = "name"),
            @Result(property = "age", column = "age")
    })
    @Select("SELECT * FROM user WHERE age = #{age}") //3
    List<User> get(int age);

    @Insert("INSERT INTO user(name, age) VALUES (#{name}, #{age})") //3
    void insert(User user);
}

service/UserService

package com.yxl.service;


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

import com.yxl.dao.UserDao;
import com.yxl.entity.User;

import java.util.List;

@Service //声明成一个spring bean
public class UserService {

    @Autowired //连接到UserDao Bean
    private UserDao userDao;

    public String show() {
        return "Hello World!";
    }

    public List<User> showDao(int age) {
        return userDao.get(age);
    }

    public String insert(String name, int age) { //插入一条记录
        User user = new User();
        user.setName(name);
        user.setAge(age);
        userDao.insert(user);
        return "Insert ( \""+name+"\", age"+age+") OK!";
    }
}

controller/UserController

package com.yxl;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

	@RequestMapping("/hello")
	public String h(){
		
		return "hello";
	}
}

src/main/resources/application.properties

server.port=8888

spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&zeroDateTimeBehavior=CONVERT_TO_NULL
spring.datasource.username=root
spring.datasource.password=root

app 启动类


package com.yxl;

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

@SpringBootApplication
@MapperScan(basePackages = "com.yxl.dao") //扫描该包下的文件
public class App 
{
    public static void main( String[] args )
    {
    	SpringApplication.run(App.class,args);
    }
}


测试

https://blog.csdn.net/xuyuzhuang1991/article/details/54143945?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!