Spring Boot学習2.1-mybatisのHikariCP+注


環境:
jdk 1.8;spring book 2.Maven 3.3
要約の説明:
Mybatis:優れた耐久層の枠組みとして、mybatisは簡単な易学、柔軟、結合などの特徴で市場を次第に占拠しています.
HikariCP:spring boot 2は、HikariCPをデフォルトのデータベース接続池として開始する.後進の秀才として、コード量が少なく、スピードが速く、安定しています.とてもいい評判を集めました.
この文章はspring book 2+mybatis+HikariCPに基づいてデータベースの耐久層に対する操作を形成します.
mybatisの配置が多様性を持っています.接続池のように、実現方式が違っています.個数が違っていますので、ここで第一章をもとに複数のプロジェクトに分けてdemoを作成します.
ステップ:
1.依存
まず私達はmybatisに対する依存カバンを導入したいです.mybatis-spring-boot-starterです.mybatis-spring-boot-starterはすでにspring-book-starter-jdbcを含んでいますので、重複して導入する必要はありません.
次に私達はまたmysqlデータベースに対する依存パックmysql-connector-javaを導入します.
		
		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			1.3.2
		
		
		
			mysql
			mysql-connector-java
			5.1.21
		
2.データベース接続池(HikariCP)の配置
データベース接続池は主に接続数の大きさ、ライフサイクル、タイムアウト時間などを設定します.詳細は以下の通りですhttps://github.com/brettwooldridge/HikariCP
#     
spring.datasource.url=jdbc:mysql://localhost:3306/testspringboot
spring.datasource.username=root
spring.datasource.password=xxxxxx
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#-------------Hikari       --------------------------
#-----       :https://github.com/brettwooldridge/HikariCP
##         
spring.datasource.hikari.minimum-idle=5
##           ,  600000(10  )
spring.datasource.hikari.idle-timeout=180000
##         ,   10
spring.datasource.hikari.maximum-pool-size=10
##                      ,   :true
spring.datasource.hikari.auto-commit=true
##      
spring.datasource.hikari.pool-name=MyHikariCP
##                 , 0        ,  1800000 30  
spring.datasource.hikari.max-lifetime=1800000
##          ,  30 , 30000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
#--------- ---mybatis    --------------------------
mybatis.config-locations=classpath:config/mybatis_config.xml
3.mybatis配置
mybatis関連配置を配置することによって、データベース操作を最適化する.設定ファイルはmybatis_です.config.xml:



	
	
		
		

		
		

		
		

		
		

		
		

		
		

		
		

		
		

		
		

		
		

		
		

		
		

		
		
	
	
		
		
		
		
		
		
	

4.mapperの具体的な実現
注釈@Mapperで耐久層を表示します.この章は注釈を使うことによってインターフェースを実現します.
package com.example.demo.test1.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.example.demo.test1.pojo.User;

@Mapper
public interface UserMapper {
	@Select("SELECT * FROM USER WHERE NAME = #{name}")
	User findByName(@Param("name") String name);

	@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
	int insert(@Param("name") String name, @Param("age") Long age);

	@Options(useGeneratedKeys = true, keyProperty = "id")
	@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
	int insertByMap(Map map);

	@Options(useGeneratedKeys = true, keyProperty = "id")
	@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
	int insertByBean(User user);

	@Select("SELECT * FROM user")
	List findAll();
}
表作成sql:
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.テスト
junnitでテストします.
package com.example.demo;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.junit4.SpringRunner;

import com.example.demo.taf.log.TAFLog;
import com.example.demo.test1.dao.UserMapper;
import com.example.demo.test1.pojo.User;

@RunWith(SpringRunner.class)
//   SpringBootTest       
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class MybatisTest {
    @Autowired
    UserMapper userMapper;

    @Test
    public void test() {
        try {
            userMapper.insert("cc", (long) 18);
            User user = new User();
            user.setName("ccc");
            user.setAge(18);
            userMapper.insertByBean(user);
            System.out.println("  id :" + user.getId());
            Map < String, Object > map = new HashMap < String, Object >();
            map.put("name", "cccc");
            map.put("age", 18);
            userMapper.insertByMap(map);
            System.out.println("  id :" + map.get("id"));
            System.out.println("      :" + userMapper.findAll().size());
        }
        catch (Exception e) {
            System.out.println(e);
        }

    }
}
テストの結果は以下の通りです.
  id :63
  id :64
      :64
5.ソースの住所
https://github.com/cc6688211/demo_chapter 2_mybatis 1.git