zoukankan      html  css  js  c++  java
  • 001 springboot mybatis h2 数据库测试

    这篇文章能够简单的入门

    请看原文

    Spring Boot + Mybatis + H2 database数据库

    https://www.cnblogs.com/april-chen/p/11459322.html

    代码结构

    SpringbootH2Application文件
    package com.pig.springbooth2;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringbootH2Application {
    
    	public static void main(String[] args) {
    		SpringApplication.run(SpringbootH2Application.class, args);
    	}
    
    }
    

      

    application.yml

    # DataSource Config
    spring:
      datasource:
        driver-class-name: org.h2.Driver
        schema: classpath:db/schema.sql #,每次启动程序,程序都会运行schema.sql文件,对数据库的数据操作
        data: classpath:db/data.sql #,每次启动程序,程序都会运行data.sql文件,对数据库的数据操作
        url: jdbc:h2:mem:test #配置h2数据库的连接地址
        username: sa
        password: 123456
      h2:
        console:
          enabled: true #开启web console功能
    

     UserDao

    package com.pig.springbooth2.repository;
    
    import com.pig.springbooth2.entity.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Select;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    @Mapper
    public interface UserDao {
    	@Select("select * from user where id= #{id}")
    	User findById(Integer id);
    
    	@Select("select * from user")
    	List<User> findAll();
    }
    

      User

    package com.pig.springbooth2.entity;
    
    
    import lombok.Data;
    
    @Data
    public class User {
    	private Long id;
    	private String name;
    	private Integer age;
    	private String email;
    }
    

      HelloContraller

    package com.pig.springbooth2.controller;
    
    import com.pig.springbooth2.entity.User;
    import com.pig.springbooth2.repository.UserDao;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import java.util.List;
    
    @Controller
    public class HelloContraller {
    
    	@Autowired
    	private UserDao userDao;
    
    	@ResponseBody
    	@RequestMapping("/hello")
    	public List<User> hello() {
    		return userDao.findAll();
    	}
    }
    

      data.sql

    DELETE FROM user;
    
    INSERT INTO user (id, name, age, email) VALUES
      (1, 'Jone', 18, 'test1@baomidou.com'),
      (2, 'Jack', 20, 'test2@baomidou.com'),
      (3, 'Tom', 28, 'test3@baomidou.com'),
      (4, 'Sandy', 21, 'test4@baomidou.com'),
      (5, 'Billie', 24, 'test5@baomidou.com');
    

      

    schema.sql

    DROP TABLE IF EXISTS user;
    
    CREATE TABLE user
    (
      id BIGINT(20) NOT NULL COMMENT '主键ID',
      name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
      age INT(11) NULL DEFAULT NULL COMMENT '年龄',
      email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
      PRIMARY KEY (id)
    );
    

      

     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 https://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.2.2.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<groupId>com.pig</groupId>
    	<artifactId>springboot-h2</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>springboot-h2</name>
    	<description>Demo project for Spring Boot</description>
    
    	<properties>
    		<java.version>1.8</java.version>
    	</properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.projectlombok</groupId>
    			<artifactId>lombok</artifactId>
    			<optional>true</optional>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    			<exclusions>
    				<exclusion>
    					<groupId>org.junit.vintage</groupId>
    					<artifactId>junit-vintage-engine</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    		<dependency>
    			<groupId>com.h2database</groupId>
    			<artifactId>h2</artifactId>
    			<scope>runtime</scope>
    		</dependency>
    		<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>2.1.0</version>
    		</dependency>
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
    </project>
    

      

     在yml中添加下列,显示sql日志

    # 显示数据库日志
    logging:
      level:
        com.pig.springbooth2.repository: debug

    ===

    2019-12-12 23:39:23.755 DEBUG 2096 --- [nio-8080-exec-1] c.p.s.repository.UserDao.findAll : ==> Preparing: select * from user 
    2019-12-12 23:39:23.777 DEBUG 2096 --- [nio-8080-exec-1] c.p.s.repository.UserDao.findAll : ==> Parameters: 
    2019-12-12 23:39:23.804 DEBUG 2096 --- [nio-8080-exec-1] c.p.s.repository.UserDao.findAll : <== Total: 5

     

  • 相关阅读:
    亮剑.NET的系列文章之ADO.NET五大类(二)
    Effective C++ 读书笔记之Part6.Inheritance and ObjectOriented Design
    论计算机专业毕业生的人文素养
    LLVM每日谈之十四 如何给Clang添加一个属性
    那些年,面试中遇到的那些奇葩们
    亮剑.NET的系列文章之.NET实现三层架构(三)
    [转]C++预编译头文件
    [转]文件间的编译依赖性
    [转]详解编译预处理
    [转]Visual Studio 2005 IDE 技巧和窍门
  • 原文地址:https://www.cnblogs.com/windy13/p/12032333.html
Copyright © 2011-2022 走看看