增加spring boot mybatis 整合用例
This commit is contained in:
@ -54,7 +54,7 @@ spring-cloud:Finchley.SR2
|
||||
| [spring-boot-tomcat](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-boot/spring-boot-tomcat) | spring-boot 整合外部容器(tomcat) | [Use Another Web Server](https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#howto-use-another-web-server) |
|
||||
| [spring-boot-jsp](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-boot/spring-boot-jsp) | spring-boot 整合 jsp | [JSP Limitations](https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-jsp-limitations) |
|
||||
| spring-boot-jpa | spring-boot jpa 的使用 | [Spring Data JPA](https://docs.spring.io/spring-data/jpa/docs/2.1.3.RELEASE/reference/html/) |
|
||||
| spring-boot-mybatis | spring-boot 整合 mybatis | [Mybatis-Spring](http://www.mybatis.org/spring/zh/index.html) |
|
||||
| spring-boot-mybatis | spring-boot 整合 mybatis | [Mybatis-Spring](http://www.mybatis.org/spring/zh/index.html)<br/>[Mybatis-Spring-Boot-Autoconfigure](http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/) |
|
||||
| spring-boot-druid-mybtais | spring-boot 整合druid、mybatis | [Alibaba druid](https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) |
|
||||
| [spring-boot-redis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-boot/spring-boot-redis) | spring-boot 整合 redis | [Working with NoSQL Technologies](https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-nosql) |
|
||||
| [spring-boot-mongodb](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-boot/spring-boot-mongodb) | spring-boot 整合 mongodb | [Working with NoSQL Technologies](https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-nosql) |
|
||||
|
56
spring-boot/spring-boot-mybatis/pom.xml
Normal file
56
spring-boot/spring-boot-mybatis/pom.xml
Normal file
@ -0,0 +1,56 @@
|
||||
<?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 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.1.1.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.heibaiying</groupId>
|
||||
<artifactId>spring-boot-mybatis</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>spring-boot-mybatis</name>
|
||||
<description>mybatis project for Spring Boot</description>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!--spring 1.5 x 以上版本对应 mybatis 1.3.x (1.3.1)
|
||||
关于更多spring-boot 与 mybatis 的版本对应可以参见 <a href="http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/">-->
|
||||
<dependency>
|
||||
<groupId>org.mybatis.spring.boot</groupId>
|
||||
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||
<version>1.3.2</version>
|
||||
</dependency>
|
||||
<!--引入mysql驱动-->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.13</version>
|
||||
</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>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1,14 @@
|
||||
package com.heibaiying.springboot;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class SpringBootMybatisApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(SpringBootMybatisApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,38 @@
|
||||
package com.heibaiying.springboot.bean;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author : heibaiying
|
||||
* @description : 实体类
|
||||
*/
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class Programmer {
|
||||
|
||||
private int id;
|
||||
|
||||
private String name;
|
||||
|
||||
private int age;
|
||||
|
||||
private float salary;
|
||||
|
||||
private Date birthday;
|
||||
|
||||
public Programmer(String name, int age, float salary, Date birthday) {
|
||||
this.name = name;
|
||||
this.age = age;
|
||||
this.salary = salary;
|
||||
this.birthday = birthday;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.heibaiying.springboot.dao;
|
||||
|
||||
import com.heibaiying.springboot.bean.Programmer;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author : heibaiying
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProgrammerDao {
|
||||
|
||||
@Insert("insert into programmer (name, age, salary, birthday) VALUES (#{name}, #{age}, #{salary}, #{birthday})")
|
||||
void save(Programmer programmer);
|
||||
|
||||
@Select("select * from programmer where name = #{id}")
|
||||
Programmer selectById(int id);
|
||||
|
||||
@Update("update programmer set name=#{name},age=#{age},salary=#{salary},birthday=#{birthday} where id=#{id}")
|
||||
int modify(Programmer programmer);
|
||||
|
||||
@Delete(" delete from programmer where id = #{id}")
|
||||
void delete(int id);
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.heibaiying.springboot.dao;
|
||||
|
||||
import com.heibaiying.springboot.bean.Programmer;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author : heibaiying
|
||||
*/
|
||||
|
||||
@Mapper
|
||||
public interface ProgrammerMapper {
|
||||
|
||||
void save(Programmer programmer);
|
||||
|
||||
Programmer selectById(int id);
|
||||
|
||||
int modify(Programmer programmer);
|
||||
|
||||
void delete(int id);
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&characterEncoding=utf-8
|
||||
username: root
|
||||
password: root
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>Ļ<EFBFBD>,<2C><><EFBFBD>¹<EFBFBD><C2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳص<D3B3><D8B5><EFBFBD><EFBFBD>þͲ<C3BE><CDB2>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
# spring-boot 2 Ĭ<>ϲ<EFBFBD><CFB2>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>ܵ<EFBFBD> Hikari <20><>Ϊ<EFBFBD><CEAA><EFBFBD>ӳ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>Բο<D4B2> https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
# <20><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
minimum-idle: 10
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
maximum-pool-size: 20
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF>ƴӳط<D3B3><D8B7>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ӵ<EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD>Զ<EFBFBD><D4B6>ύ<EFBFBD><E1BDBB>Ϊ<EFBFBD><CEAA>Ĭ<EFBFBD><C4AC>Ϊtrue
|
||||
auto-commit: true
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB3A4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
idle-timeout: 30000
|
||||
# <20><><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ӳص<D3B3><D8B5>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>־<EFBFBD><D6BE>¼<EFBFBD><C2BC>JMX<4D><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>У<EFBFBD><D0A3>Ա<EFBFBD>ʶ<EFBFBD>غͳ<D8BA><CDB3><EFBFBD><EFBFBD>á<EFBFBD> Ĭ<><C4AC>ֵ<EFBFBD><D6B5><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
pool-name: custom-hikari
|
||||
#<23><><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EEB3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>ֵ0<D6B5><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>Ĭ<EFBFBD><C4AC>1800000<30><30>30<33><30><EFBFBD><EFBFBD>
|
||||
max-lifetime: 1800000
|
||||
# <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ӳ<EFBFBD>ʱʱ<CAB1><CAB1>,Ĭ<><C4AC>30<33>룬<EFBFBD><EBA3AC>30000
|
||||
connection-timeout: 30000
|
||||
# <20><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>sql <20><><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿⷽ<DDBF>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> oracle <20><>Ӧ<EFBFBD><D3A6>д<EFBFBD><D0B4> select 1 from dual
|
||||
connection-test-query: SELECT 1
|
||||
|
||||
# mybatis <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mybatis:
|
||||
# ָ<><D6B8> sql xml <20>ļ<EFBFBD><C4BC><EFBFBD>λ<EFBFBD><CEBB>
|
||||
mapper-locations: classpath*:mappers/*.xml
|
||||
configuration:
|
||||
# <20><>û<EFBFBD><C3BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ṩ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD> JDBC <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD><CEAA>ֵָ<D6B5><D6B8> JDBC <20><><EFBFBD>͡<EFBFBD>
|
||||
# oracle<6C><65><EFBFBD>ݿ⽨<DDBF><E2BDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪJdbcType.NULL, Ĭ<><C4AC><EFBFBD><EFBFBD>Other
|
||||
jdbc-type-for-null: 'null'
|
||||
# <20>Ƿ<EFBFBD><C7B7><EFBFBD>ӡsql<71><6C><EFBFBD><EFBFBD> <20><><EFBFBD>Ե<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD>
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
|
||||
|
||||
# ע 1
|
||||
# oracle
|
||||
# driver="oracle.jdbc.driver.OracleDriver"
|
||||
# url="jdbc:oracle:thin:@localhost:1521:<3A><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>"
|
||||
# mysql
|
||||
# driver="com.mysql.jdbc.Driver"
|
||||
# url="jdbc:mysql://localhost/<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>?[<5B><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>]"
|
||||
|
||||
|
||||
# ע 2
|
||||
# mybatis <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>Բο<D4B2>settings http://www.mybatis.org/mybatis-3/zh/configuration.html
|
||||
|
||||
|
||||
# ע 3
|
||||
# spring boot 2.0 Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD>Hikari <20><>Ϊ<EFBFBD><CEAA><EFBFBD>ӳ<EFBFBD> github<75><62>ַ https://github.com/brettwooldridge/HikariCP
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.heibaiying.springboot.dao.ProgrammerMapper">
|
||||
|
||||
<insert id="save">
|
||||
insert into programmer (name, age, salary, birthday) VALUES (#{name}, #{age}, #{salary}, #{birthday})
|
||||
</insert>
|
||||
|
||||
<select id="selectById" resultType="com.heibaiying.springboot.bean.Programmer">
|
||||
select * from programmer where name = #{id}
|
||||
</select>
|
||||
|
||||
<update id="modify">
|
||||
update programmer set name=#{name},age=#{age},salary=#{salary},birthday=#{birthday} where id=#{id}
|
||||
</update>
|
||||
|
||||
<delete id="delete">
|
||||
delete from programmer where id = #{id}
|
||||
</delete>
|
||||
|
||||
</mapper>
|
@ -0,0 +1,8 @@
|
||||
-- 建表语句
|
||||
create table if not exists programmer (
|
||||
id int primary key auto_increment,
|
||||
name varchar(20),
|
||||
age tinyint,
|
||||
salary float,
|
||||
birthday datetime
|
||||
)
|
@ -0,0 +1,49 @@
|
||||
package com.heibaiying.springboot;
|
||||
|
||||
import com.heibaiying.springboot.bean.Programmer;
|
||||
import com.heibaiying.springboot.dao.ProgrammerDao;
|
||||
import org.junit.Assert;
|
||||
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.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/***
|
||||
* @description: 注解Sql测试类
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest
|
||||
public class MybatisAnnotationTest {
|
||||
|
||||
@Autowired
|
||||
private ProgrammerDao programmerDao;
|
||||
|
||||
@Test
|
||||
public void save() {
|
||||
programmerDao.save(new Programmer("xiaominng", 12, 3467.34f, new Date()));
|
||||
programmerDao.save(new Programmer("xiaominng", 12, 3467.34f, new Date()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void modify() {
|
||||
programmerDao.modify(new Programmer(1, "xiaolan", 21, 347.34f, new Date()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void selectByCondition() {
|
||||
Programmer programmers = programmerDao.selectById(1);
|
||||
System.out.println(programmers);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void delete() {
|
||||
programmerDao.delete(3);
|
||||
Programmer programmers = programmerDao.selectById(3);
|
||||
Assert.assertNull(programmers);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,50 @@
|
||||
package com.heibaiying.springboot;
|
||||
|
||||
import com.heibaiying.springboot.bean.Programmer;
|
||||
import com.heibaiying.springboot.dao.ProgrammerDao;
|
||||
import com.heibaiying.springboot.dao.ProgrammerMapper;
|
||||
import org.junit.Assert;
|
||||
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.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
* @description: xml Sql测试类
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest
|
||||
public class MybatisXmlTest {
|
||||
|
||||
@Autowired
|
||||
private ProgrammerMapper mapper;
|
||||
|
||||
@Test
|
||||
public void save() {
|
||||
mapper.save(new Programmer("xiaominng", 12, 3467.34f, new Date()));
|
||||
mapper.save(new Programmer("xiaominng", 12, 3467.34f, new Date()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void modify() {
|
||||
mapper.modify(new Programmer(1, "xiaohong", 112, 347.34f, new Date()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void selectByCondition() {
|
||||
Programmer programmers = mapper.selectById(1);
|
||||
System.out.println(programmers);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void delete() {
|
||||
mapper.delete(2);
|
||||
Programmer programmers = mapper.selectById(2);
|
||||
Assert.assertNull(programmers);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user