Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Quick Start

Kazuki Shimizu edited this pageDec 7, 2022 ·7 revisions

Let's try mybatis-thymeleaf quickly using the Spring Boot! Basically, Please see the mybatis-spring-boot-starter'sQuick Start on GitHub wiki page. In this page, we introduce usage in three JVM based language.

Common

Add dependency and repository on Maven project file

Add mybatis-thymeleaf into dependency onpom.xml.

<dependencies>  <dependency>    <groupId>org.mybatis.scripting</groupId>    <artifactId>mybatis-thymeleaf</artifactId>    <version>1.0.4</version>  </dependency></dependencies>

Configure Spring Boot configuration

Configure to use mybatis-thymeleaf feature in configuration properties file(src/main/resources/application.properties).

# Enable mybatis-thymeleaf featuremybatis.configuration.default-scripting-language=org.mybatis.scripting.thymeleaf.ThymeleafLanguageDriver# Workaround for https://github.com/spring-projects/spring-boot/issues/16079spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration

Java

Create a mapper interface

src/main/java/com/example/mybatissample/CityMapper.java

packagecom.example.mybatissample;importorg.apache.ibatis.annotations.Insert;importorg.apache.ibatis.annotations.Mapper;importorg.apache.ibatis.annotations.Options;importorg.apache.ibatis.annotations.Select;@MapperpublicinterfaceCityMapper {@Insert({"INSERT INTO city (name, state, country) VALUES(","/*[# mb:p='name']*/ 'Name' /*[/]*/,","/*[# mb:p='state']*/ 'State' /*[/]*/,","/*[# mb:p='country']*/ 'country' /*[/]*/,",")"  })@Options(useGeneratedKeys =true,keyProperty ="id")voidinsert(Citycity);@Select({"SELECT id, name, state, country FROM city","WHERE id = /*[# mb:p='id']*/ 1 /*[/]*/"  })CityfindById(longid);}

Kotlin

Create a project

$ curl -s https://start.spring.io/starter.tgz\       -d name=mybatis-sample\       -d artifactId=mybatis-sample\       -d dependencies=mybatis,h2\       -d baseDir=mybatis-sample\       -d language=kotlin\       | tar -xzvf -

Create a domain class

src/main/kotlin/com/example/mybatissample/City.kt

packagecom.example.mybatissampleclassCity {var id:Long=0var name:String?=nullvar state:String?=nullvar country:String?=nulloverridefuntoString():String="""${id},${name},${state},${country}"""}

Create a mapper interface

src/main/kotlin/com/example/mybatissample/CityMapper.kt

packagecom.example.mybatissampleimportorg.apache.ibatis.annotations.Insertimportorg.apache.ibatis.annotations.Mapperimportorg.apache.ibatis.annotations.Optionsimportorg.apache.ibatis.annotations.Select@MapperinterfaceCityMapper {  @Insert("""    INSERT INTO city (name, state, country) VALUES(      /*[# mb:p="name"]*/ 'Name' /*[/]*/,      /*[# mb:p="state"]*/ 'State' /*[/]*/,      /*[# mb:p="country"]*/ 'Country' /*[/]*/    )""")  @Options(useGeneratedKeys=true, keyProperty="id")funinsert(city:City)  @Select("""    SELECT id, name, state, country FROM city    WHERE id = /*[# mb:p="id"]*/ 1 /*[/]*/""")funfindById(id:Long):City}

Modify a spring boot application class

src/main/kotlin/com/example/mybatissample/MybatisSampleApplication.kt

packagecom.example.mybatissampleimportorg.springframework.beans.factory.annotation.Autowiredimportorg.springframework.boot.CommandLineRunnerimportorg.springframework.boot.autoconfigure.SpringBootApplicationimportorg.springframework.boot.runApplicationimportorg.springframework.context.annotation.Bean@SpringBootApplicationclassMybatisSampleApplication {  @Autowiredlateinitvar cityMapper:CityMapper  @BeanfunsampleCommandLineRunner():CommandLineRunner=CommandLineRunner {val city=City()    city.name="San Francisco"    city.state="CA"    city.country="US"    cityMapper.insert(city)System.out.println(this.cityMapper.findById(city.id))  }}funmain(args:Array<String>) {  runApplication<MybatisSampleApplication>(*args)}

Modify a spring boot application test class

src/test/kotlin/com/example/mybatissample/MybatisSampleApplicationTests.kt

packagecom.example.mybatissampleimportorg.hamcrest.Matchers.containsStringimportorg.junit.ClassRuleimportorg.junit.Testimportorg.junit.runner.RunWithimportorg.springframework.boot.test.context.SpringBootTestimportorg.springframework.boot.test.rule.OutputCaptureimportorg.springframework.test.context.junit4.SpringRunner@RunWith(SpringRunner::class)@SpringBootTestclassMybatisSampleApplicationTests {companionobject {    @ClassRule    @JvmFieldvalout=OutputCapture()  }  @TestfuncontextLoads() {out.expect(containsString("1,San Francisco,CA,US"))  }}

Groovy

Create a project

$ curl -s https://start.spring.io/starter.tgz\       -d name=mybatis-sample\       -d artifactId=mybatis-sample\       -d dependencies=mybatis,h2\       -d baseDir=mybatis-sample\       -d language=groovy\       | tar -xzvf -

Create a domain class

src/main/groovy/com/example/mybatissample/City.groovy

packagecom.example.mybatissampleclassCity {Long idString nameString stateString country@OverrideStringtoString() {"""${id},${name},${state},${country}"""  }}

Create a mapper interface

src/main/groovy/com/example/mybatissample/CityMapper.groovy

packagecom.example.mybatissampleimportorg.apache.ibatis.annotations.Insertimportorg.apache.ibatis.annotations.Mapperimportorg.apache.ibatis.annotations.Optionsimportorg.apache.ibatis.annotations.Select@MapperinterfaceCityMapper {@Insert('''    INSERT INTO city (name, state, country) VALUES(      /*[# mb:p="name"]*/ 'Name' /*[/]*/,      /*[# mb:p="state"]*/ 'State' /*[/]*/,      /*[# mb:p="country"]*/ 'Country' /*[/]*/    )''')@Options(useGeneratedKeys=true,keyProperty="id")voidinsert(Citycity)@Select('''    SELECT id, name, state, country FROM city    WHERE id = /*[# mb:p="id"]*/ 1 /*[/]*/''')CityfindById(longid)  }

Modify a spring boot application class

src/main/groovy/com/example/mybatissample/MybatisSampleApplication.groovy

packagecom.example.mybatissampleimportorg.springframework.boot.CommandLineRunnerimportorg.springframework.boot.SpringApplicationimportorg.springframework.boot.autoconfigure.SpringBootApplicationimportorg.springframework.context.annotation.Bean@SpringBootApplicationclassMybatisSampleApplication {staticvoidmain(String[]args) {SpringApplication.run(MybatisSampleApplication, args)  }@BeanCommandLineRunnersampleCommandLineRunner(CityMappercityMapper) {newSampleCommandLineRunner(cityMapper)  }staticclassSampleCommandLineRunnerimplementsCommandLineRunner {privatefinalCityMapper cityMapper;SampleCommandLineRunner(CityMappercityMapper) {this.cityMapper= cityMapper;    }@Overridevoidrun(String...args) {def city=newCity(name:"San Francisco",state:"CA",country:"US")      cityMapper.insert(city)printlnthis.cityMapper.findById(city.getId())    }  }  }

Modify a spring boot application test class

src/test/groovy/com/example/mybatissample/MybatisSampleApplicationTests.groovy

packagecom.example.mybatissampleimportorg.junit.ClassRuleimportorg.junit.Testimportorg.junit.runner.RunWithimportorg.springframework.boot.test.context.SpringBootTestimportorg.springframework.boot.test.rule.OutputCaptureimportorg.springframework.test.context.junit4.SpringRunnerimport staticorg.hamcrest.Matchers.containsString@RunWith(SpringRunner)@SpringBootTestclassMybatisSampleApplicationTests {@ClassRulepublicstaticOutputCapture out=newOutputCapture()@TestvoidcontextLoads() {    out.expect(containsString("1,San Francisco,CA,US"))  }  }

[8]ページ先頭

©2009-2025 Movatter.jp