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を導入します.
データベース接続池は主に接続数の大きさ、ライフサイクル、タイムアウト時間などを設定します.詳細は以下の通りですhttps://github.com/brettwooldridge/HikariCP
mybatis関連配置を配置することによって、データベース操作を最適化する.設定ファイルはmybatis_です.config.xml:
注釈@Mapperで耐久層を表示します.この章は注釈を使うことによってインターフェースを実現します.
junnitでテストします.
https://github.com/cc6688211/demo_chapter 2_mybatis 1.git
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