Coder Social home page Coder Social logo

spring-boot-starter's Introduction

MyBatis integration with Spring Boot

Java CI Coverage Status Maven central Sonatype Nexus (Snapshots) License

mybatis-spring

MyBatis Spring-Boot-Starter will help you to use MyBatis with Spring Boot

Requirements

  • master : MyBatis 3.5, MyBatis-Spring 3.0, Java 17+ and Spring Boot 3.0-3.2
  • 2.3.x : MyBatis 3.5, MyBatis-Spring 2.1, Java 8+ and Spring Boot 2.7

Compatibility Check

  • Compatibility with Spring Boot 2.6 - 3.2 here

Creating new project via Spring Initializr

Essentials

Published documentations

Snapshot documentations

Translations:

Quick Start

Quick Start for building native image

Bug report & Feature request

Question

spring-boot-starter's People

Contributors

abel533 avatar aikin avatar alwaystom avatar awxiaoxian2020 avatar be-hase avatar cosmoseeker avatar dependabot-preview[bot] avatar dependabot[bot] avatar eas5 avatar eddumelendez avatar emacarron avatar florian-negre-cbp avatar gungnirlaevatain avatar h3adache avatar harawata avatar hazendaz avatar irof avatar izeye avatar izhangzhihao avatar joshlong avatar kazuki43zoo avatar mallim avatar misterchangray avatar mistray avatar nieqiurong avatar renovate[bot] avatar soumya47 avatar tacoo avatar tokuhirom avatar wonwoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-boot-starter's Issues

All interfaces are registered as mybatis mappers even if they are not mappers

Right now, the mybatis boot starter module takes all the interfaces it founds in a project and registers them as mappers. We should be able to identify if an interface is a mapper or not.

The problem is that mappers are not annotated (the @Mapper annotation does not exist). We did this because we would like to build applications with no mybatis imports at all. So they way you select your mappers when using classic configuraiton like MapperScannerConfigurer or @MapperScan is by:

  • specifiying a base package
  • specifiying a marker interface
  • specifiying a marker annotation

So, my proposal is to use this convention: mappers are supposed to be interfaces held in a */mapper or */mappers package.

For any other configuration, use the @MapperScan annotation that lets you configure everything.

java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession

The following warning message is observe upon shutting down:

2015-12-01 13:57:04.115  WARN 17396 --- [       Thread-4] o.s.b.f.support.DisposableBeanAdapter    : Invocation of destroy method 'close' failed on bean with name 'sqlSessionTemplate': java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession
13:57:04 WARN  o.s.b.f.s.DisposableBeanAdapter - Invocation of destroy method 'close' failed on bean with name 'sqlSessionTemplate': java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession

New release 1.0.1 is crashing

Just by switching from 1.0.0 to 1.0.1 (no other code changes) when attempting to run I now get this error:

Caused by: java.lang.IllegalStateException: Cannot find config location: ServletContext resource [/mybatis-config.xml] (please add config file or check your Mybatis configuration)
        at org.springframework.util.Assert.state(Assert.java:392) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.checkConfigFileExists(MybatisAutoConfiguration.java:97) ~[mybatis-spring-boot-autoconfigure-1.0.1.jar:1.0.1]
        at sun.reflect.NahodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:354) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]

        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:305) ~[spring-beans-4.2.5.RELEASE.jar:4.
2.5.RELEASE]
        at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.
RELEASE]
        ... 51 common frames omitted

To reiterate - mybatis-config.xml is there in the jar and the app runs fine with 1.0.0

spring boot maven package war to tomcat mybatis/springbootstarter 1.1.1 start error

I create project with spring boot 1.4.0 and mybatis/spring-boot-starter 1.1.1.

The demo project in https://github.com/walkwolf/testboot
Any help thanks!

@Autowired problem

I find @Autowired SqlSessionFactory factory; then get mapper is no problem.
Use @Autowired Mapper is error.

@Autowired
SqlSessionFactory factory;
CityMapper mapper = factory.openSession().getMapper(CityMapper.class);

In other words, Mapper not exist in spring context.
I trace the problem ,then find MybatisAutoConfiguration

log.debug("Could not determine auto-configuration " + "package, automatic mapper scanning disabled.");

When package war file with maven pom,then copy tomcat webapp directory,start tomcat, I got error below

九月 09, 2016 12:16:06 下午 org.apache.catalina.startup.HostConfig deployWAR
信息: Deployment of web application archive D:\apache-tomcat-7.0.59\webapps\testboot.war has finished in 7,918 ms
九月 09, 2016 12:16:06 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-80"]
九月 09, 2016 12:16:06 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
九月 09, 2016 12:16:06 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 8052 ms
九月 09, 2016 1:31:32 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-apr-80"]
九月 09, 2016 1:31:32 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-apr-8009"]
九月 09, 2016 1:31:32 下午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
九月 09, 2016 1:31:32 下午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-apr-80"]
九月 09, 2016 1:31:32 下午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["ajp-apr-8009"]
九月 09, 2016 1:31:32 下午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-apr-80"]
九月 09, 2016 1:31:32 下午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-apr-8009"]
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version:        Apache Tomcat/7.0.59
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built:          Jan 28 2015 15:51:10 UTC
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number:         7.0.59.0
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name:               Windows 7
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version:            6.1
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture:          amd64
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home:             C:\Java\jre8
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version:           1.8.0_31-b13
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor:            Oracle Corporation
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE:         D:\apache-tomcat-7.0.59
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME:         D:\apache-tomcat-7.0.59
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.config.file=D:\apache-tomcat-7.0.59\conf\logging.properties
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\apache-tomcat-7.0.59\endorsed
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\apache-tomcat-7.0.59
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\apache-tomcat-7.0.59
九月 09, 2016 1:31:57 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.io.tmpdir=D:\apache-tomcat-7.0.59\temp
九月 09, 2016 1:31:57 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: Loaded APR based Apache Tomcat Native library 1.1.32 using APR version 1.5.1.
九月 09, 2016 1:31:57 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
九月 09, 2016 1:31:58 下午 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1j 15 Oct 2014)
九月 09, 2016 1:31:58 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-80"]
九月 09, 2016 1:31:58 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
九月 09, 2016 1:31:58 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1544 ms
九月 09, 2016 1:31:58 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
九月 09, 2016 1:31:58 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.59
九月 09, 2016 1:31:58 下午 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive D:\apache-tomcat-7.0.59\webapps\testboot.war
九月 09, 2016 1:32:05 下午 org.apache.catalina.core.ContainerBase addChildInternal
严重: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testboot]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ABCController': Unsatisfied dependency expressed through field 'cityMapper': No qualifying bean of type [testboot.service.CityMapper] found for dependency [testboot.service.CityMapper]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [testboot.service.CityMapper] found for dependency [testboot.service.CityMapper]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:776)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)
    at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:150)
    at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:130)
    at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5513)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [testboot.service.CityMapper] found for dependency [testboot.service.CityMapper]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1406)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1057)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1019)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566)
    ... 32 more

九月 09, 2016 1:32:05 下午 org.apache.catalina.startup.HostConfig deployWAR
严重: Error deploying web application archive D:\apache-tomcat-7.0.59\webapps\testboot.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testboot]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

九月 09, 2016 1:32:05 下午 org.apache.catalina.startup.HostConfig deployWAR
信息: Deployment of web application archive D:\apache-tomcat-7.0.59\webapps\testboot.war has finished in 6,607 ms
九月 09, 2016 1:32:05 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-80"]
九月 09, 2016 1:32:05 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
九月 09, 2016 1:32:05 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 6709 ms

Release Issue - Place holder

This is for me...running mvn site causes issues with javadoc generation. This additionally causes maven release plugin to fail. This does not appear to be any issue with spring-boot-starter but rather how dependencies might be dealt with. This place holder is so I don't forget this is an issue and hopefully can resolve before next release so the process is smoother. If anyone else has any ideas on this, please do share.

Registering Plugin

Is there an easy way to register a Plugin (org.apache.ibatis.plugin.Interceptor) to the sqlSessionFactory with only java configuration?

Cannot coexist

@bean
@ConditionalOnMissingBean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
if (StringUtils.hasText(this.properties.getConfig())) {
factory.setConfigLocation(
this.resourceLoader.getResource(this.properties.getConfig()));
}
if (StringUtils.hasText(this.properties.getTypeAliasesPackage()))
factory.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
if (StringUtils.hasText(this.properties.getTypeHandlersPackage()))
factory.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
if (this.properties.getMapperLocations()!=null && this.properties.getMapperLocations().length>0)
factory.setMapperLocations(this.properties.getMapperLocations());
return factory.getObject();
}

NoSuchBeanDefinitionException:SqlSession

when I upgrade to gradle 3.0 ,spring boot 1.4 ,mybatis-spring-boot1.1.1

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.apache.ibatis.session.SqlSession] found for dependency [org.apache.ibatis.session.SqlSession]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1406)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1057)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1019)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:518)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:496)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:627)
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
    ... 22 common frames omitted

UserRepository.java

@Repository
public class UserDao {

    @Resource
    private SqlSession sqlSession;


    public AdminUser search(String name){
        ........
    }
}

dependencies

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web") {
        exclude module: "spring-boot-starter-tomcat"
    }
    compile("org.springframework.boot:spring-boot-starter-jetty")
    compile("org.springframework.boot:spring-boot-starter-actuator")
    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1")
    compile("org.springframework.boot:spring-boot-starter-jdbc")
    compile ("com.alibaba:druid:1.0.19")
    compile group: 'org.projectlombok', name: 'lombok', version: lombokVersion
    compile("mysql:mysql-connector-java")
}

gradle.properties:

springBootVersion=1.4.0.RELEASE
spring.version=4.3.2.RELEASE

lombokVersion=1.16.8

Enable properties via application.properties

I'm putting few configurations in mybatis.xml.
I want to configure mybatis in application.properties instead.

I'm using mybatis.xml like following. I wonder if I can configure it in application.properties.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <setting name="defaultFetchSize" value="100"/>
        <setting name="defaultStatementTimeout" value="30"/>
        <!-- Throw exception when auto property mapping failed -->
        <setting name="autoMappingUnknownColumnBehavior" value="FAILING"/>
    </settings>
</configuration>

Running from command line throws "Cannot load driver class: com.mysql.jdbc.Driver"

I'm writing Spring boot SOAP web service based on https://spring.io/guides/gs/producing-web-service/ tutorial. I'm trying to incorporate mybatis-spring-boot. My configuration is Gradle-based.
The code compiles but when I try to run it from command line (using embedded Tomcat) it fails because mysql driver class is not found.

Here's my Gradle configuration and application.properties. I would really appreciate your help

build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.2.RELEASE")
        classpath  'mysql:mysql-connector-java:5.1.34'
    }
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
repositories {
    mavenCentral()
}
// tag::xsd[]
task genJaxb {
    ext.sourcesDir = "${buildDir}/generated-sources/jaxb"
    ext.classesDir = "${buildDir}/classes/jaxb"
    ext.schema = "src/main/resources/AztralType.xsd"
    outputs.dir classesDir
    doLast() {
        project.ant {
            taskdef name: "xjc", classname: "com.sun.tools.xjc.XJCTask",
                    classpath: configurations.jaxb.asPath
            mkdir(dir: sourcesDir)
            mkdir(dir: classesDir)
            xjc(destdir: sourcesDir, schema: schema) {
                arg(value: "-wsdl")
                produces(dir: sourcesDir, includes: "**/*.java")
            }
            javac(destdir: classesDir, source: 1.6, target: 1.6, debug: true,
                    debugLevel: "lines,vars,source",
                    classpath: configurations.jaxb.asPath) {
                src(path: sourcesDir)
                include(name: "**/*.java")
                include(name: "*.java")
            }
            copy(todir: classesDir) {
                fileset(dir: sourcesDir, erroronmissingdir: false) {
                    exclude(name: "**/*.java")
                }
            }
        }
    }
}
// end::xsd[]
task afterEclipseImport {
    dependsOn "genJaxb"
}
// tag::jaxb[]
configurations {
    jaxb
}
jar {
    baseName = 'aztral-extract-web-service'
    version =  '0.1.0'
    from genJaxb.classesDir
}
// tag::dependencies[]
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
    compile("org.springframework.boot:spring-boot-starter-ws")
    testCompile("org.springframework.boot:spring-boot-starter-test")
    compile("wsdl4j:wsdl4j:1.6.1")
    jaxb("com.sun.xml.bind:jaxb-xjc:2.2.4-1")
    compile(files(genJaxb.classesDir).builtBy(genJaxb))
    compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.0.0')
    compile 'mysql:mysql-connector-java:5.1.38'
}
// end::dependencies[]
// end::jaxb[]
task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}

application.properties:

spring.datasource.url = jdbc:mysql://localhost:3306/aztral
spring.datasource.username = root 
spring.datasource.password =
spring.datasource.driver-class-name = com.mysql.jdbc.Driver 
mybatis.config=mybatis-config.xml
mybatis.check-config-location=true

How to config mybatis datasource?not a simple jdbc

in a spring project,I usually config like this:

    <bean id="rowanTemplateSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="XXXDataSource" />
    </bean>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="rowanTemplateSqlSessionFactory" />
    </bean>
``

but when I use mybatis-spring-boot,how to config XXXDataSource?I tried lots of times,but still failed.

Logging Suggested change

Currently both apache commons logging and slf4j are on the class path. Apache commons logging, in my opinion is far less flexible than slf4j and given slf4j is already there, I think we should move to using slf4j and let it test internally for logging needs and further avoid formatting within log statements as slf4j provides that out of the box and incurs cost only when it truely needs to write the log.

how can i integration spring boot mybatis with pagehelper

when i use pagehelper and annotation Sqlprovider

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'providerTakesParameterObject' in 'class org.apache.ibatis.builder.annotation.ProviderSqlSource'

i find field providerTakesParameterObject in class PageProviderSqlSource ,but not in use

Could not find artifact org.mybatis:mybatis-parent:pom:28-SNAPSHOT after upgrade to 1.1.0

Here is my pom.xml

<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>com.lenicliu</groupId>
        <artifactId>eg-spring-boot</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>eg-spring-boot-mybatis2</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
    </dependencies>
</project>

And I got the following error when executing mvn clean package

C:\Users\xxx\git\eg-spring-boot\eg-spring-boot-mybatis2>mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building eg-spring-boot-mybatis2 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://repo.spring.io/list/libs-release-local/org/mybatis/spring/boot/mybatis-spring-boot-starter/1.1.0/mybatis-spring-boot-starter-1.1.0.pom
Downloading: https://repo.spring.io/list/libs-milestone-local/org/mybatis/spring/boot/mybatis-spring-boot-starter/1.1.0/mybatis-spring-boot-starter-1.1.0.pom
Downloading: https://repo.spring.io/list/libs-release/org/mybatis/spring/boot/mybatis-spring-boot-starter/1.1.0/mybatis-spring-boot-starter-1.1.0.pom
Downloaded: https://repo.spring.io/list/libs-release/org/mybatis/spring/boot/mybatis-spring-boot-starter/1.1.0/mybatis-spring-boot-starter-1.1.0.pom (2 KB at 0.2 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 41.808 s
[INFO] Finished at: 2016-04-18T12:04:21+08:00
[INFO] Final Memory: 14M/124M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project eg-spring-boot-mybatis2: Could not resolve dependencies for project com.lenicliu:eg-spring-boot-mybatis2:jar:0.0.1-SNA
PSHOT: Failed to collect dependencies at org.mybatis.spring.boot:mybatis-spring-boot-starter:jar:1.1.0: Failed to read artifact descriptor for org.mybatis.sprin
g.boot:mybatis-spring-boot-starter:jar:1.1.0: Could not find artifact org.mybatis:mybatis-parent:pom:28-SNAPSHOT -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

C:\Users\xxx\git\eg-spring-boot\eg-spring-boot-mybatis2>

mybatis-spring-boot-issues-54

Thanks

this config has No effect

mybatis.mapperLocations[0]=classpath:/mybatis/**Mapper.xml

this config has No effect

when i use SqlSessionTemplate to select database,error occur,the information is java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.xx.xx

How do i use the wildcard characters in mapperLocations

In application.properties:
i want to use it like 'mybatis.mapper-locations[0]=classpath_:com/hong/__/mapper/_Mapper.xml' because i have many mapper.xml files, But spring throw an error, it didn't find the file '*Mapper.xml'.
i must use it like 'mybatis.mapper-locations[0]=com/hong/demo/UserMapper.xml'.

auto-configuration and config location conflict.

Currently I've an issue with setting up my project.

When I set the config property in my application.properties, MybatisAutoConfiguration still scans the project for possible mappers, causing all my interfaces in that package becoming a mapper file.

When debugging, I see the config check being done after the auto configuration is scanning my package. This seems like a bug to me.

namespace

In file "spring-boot-starter/mybatis-spring-boot-samples/mybatis-spring-boot-sample-xml/src/main/resources/sample/mybatis/mapper/CityMapper.xml", I found "" and it works.
What's the rule of namespace?

runing package

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

题外:
依赖导入后,demo 打我包无法通过 java -jar *.jar 执行了,这个怎么处理~

When using @Mapper, i can not mapping field properties in mapper.xml , ask for help!

error: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.ft.passport.mapper.UserMapper.user。
userMapper.xml:

<mapper namespace="com.ft.passport.mapper.UserMapper" >
    <resultMap id="user" type="com.ft.passport.domain.User" > 
        <id column="id" property="id" jdbcType="INTEGER" /> 
        <result column="name" property="name" jdbcType="VARCHAR" /> 
        <result column="birthday" property="birthday" jdbcType="DATE" /> 
        <result column="user_name" property="userName" jdbcType="VARCHAR" /> 
        <result column="password" property="password" jdbcType="VARCHAR" /> 
        <result column="salt" property="salt" jdbcType="VARCHAR" /> 
    </resultMap> 
</mapper>

interface UserMapper:

@Mapper
public interface UserMapper {

    @Select("select * from user where id= #{id,jdbcType=INTEGER} ")
    User findOne(@Param("id")int id);

    @Select("select * from user where user_name= #{userName,jdbcType=VARCHAR} ")
    User findByUserName(@Param("userName")String userName);
}

spring boot mybatis annotations does not work

I followed the samples and create a new boot project and run it. errors displayed in console.

java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class org.mybatis.spring.annotation.MapperScan.factoryBean()
at java.lang.reflect.Method.getDefaultValue(Method.java:747) ~[na:1.7.0_80]
at sun.reflect.annotation.AnnotationType.(AnnotationType.java:128) ~[na:1.7.0_80]
at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:85) ~[na:1.7.0_80]
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:263) ~[na:1.7.0_80]
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:117) ~[na:1.7.0_80]
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:70) ~[na:1.7.0_80]
at java.lang.Class.initAnnotationsIfNecessary(Class.java:3281) ~[na:1.7.0_80]
at java.lang.Class.getDeclaredAnnotations(Class.java:3258) ~[na:1.7.0_80]
at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:704) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:683) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:660) ~[spring-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.isComponent(BeanDefinitionLoader.java:266) ~[spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:157) ~[spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:134) ~[spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:126) ~[spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.SpringApplication.load(SpringApplication.java:708) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:357) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE]
at com.pms.SampleMapperApplication.main(SampleMapperApplication.java:38) [classes/:na]

2016-05-07 23:25:32.572 INFO 6300 --- [ main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/D:/Workspace/pms-refresher/target/classes/, file:/G:/env/resp/org/springframework/boot/spring-boot-starter/1.3.3.RELEASE/spring-boot-starter-1.3.3.RELEASE.jar, file:/G:/env/resp/org/springframework/boot/spring-boot/1.3.3.RELEASE/spring-boot-1.3.3.RELEASE.jar, file:/G:/env/resp/org/springframework/spring-context/4.2.5.RELEASE/spring-context-4.2.5.RELEASE.jar, file:/G:/env/resp/org/springframework/spring-aop/4.2.5.RELEASE/spring-aop-4.2.5.RELEASE.jar, file:/G:/env/resp/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file:/G:/env/resp/org/springframework/spring-beans/4.2.5.RELEASE/spring-beans-4.2.5.RELEASE.jar, file:/G:/env/resp/org/springframework/spring-expression/4.2.5.RELEASE/spring-expression-4.2.5.RELEASE.jar, file:/G:/env/resp/org/springframework/boot/spring-boot-autoconfigure/1.3.3.RELEASE/spring-boot-autoconfigure-1.3.3.RELEASE.jar, file:/G:/env/resp/org/springframework/boot/spring-boot-starter-logging/1.3.3.RELEASE/spring-boot-starter-logging-1.3.3.RELEASE.jar, file:/G:/env/resp/ch/qos/logback/logback-classic/1.1.5/logback-classic-1.1.5.jar, file:/G:/env/resp/ch/qos/logback/logback-core/1.1.5/logback-core-1.1.5.jar, file:/G:/env/resp/org/slf4j/slf4j-api/1.7.16/slf4j-api-1.7.16.jar, file:/G:/env/resp/org/slf4j/jcl-over-slf4j/1.7.16/jcl-over-slf4j-1.7.16.jar, file:/G:/env/resp/org/slf4j/jul-to-slf4j/1.7.16/jul-to-slf4j-1.7.16.jar, file:/G:/env/resp/org/slf4j/log4j-over-slf4j/1.7.16/log4j-over-slf4j-1.7.16.jar, file:/G:/env/resp/org/springframework/spring-core/4.2.5.RELEASE/spring-core-4.2.5.RELEASE.jar, file:/G:/env/resp/org/yaml/snakeyaml/1.16/snakeyaml-1.16.jar, file:/G:/env/resp/org/mybatis/mybatis/3.4.0/mybatis-3.4.0.jar, file:/G:/env/resp/org/mybatis/mybatis-spring/1.3.0/mybatis-spring-1.3.0.jar]

and pom.xml 👍


4.0.0

<groupId>com.pms</groupId>
<artifactId>pms-refresher</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<name>pms-refresher</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <start-class>pms.Application</start-class>
    <spring-boot.version>1.3.3.RELEASE</spring-boot.version>
    <springframework.version>4.2.5.RELEASE</springframework.version>
    <junit.version>4.12</junit.version>
    <jsoup.version>1.8.1</jsoup.version>
    <mysql.version>5.1.38</mysql.version>
    <httpclient.version>4.4</httpclient.version>
    <commonsio.version>2.4</commonsio.version>
    <mima.version>0.6</mima.version>
    <httpmima.version>4.2.1</httpmima.version>
    <jna.version>4.1.0</jna.version>
    <jdom.version>1.1</jdom.version>
    <commons.lang.version>2.6</commons.lang.version>
    <mybatis.vsersion>3.4.0</mybatis.vsersion>
    <mybatis-spring.version>1.3.0</mybatis-spring.version>
</properties>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis.vsersion}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>${mybatis-spring.version}</version>
    </dependency>

</dependencies>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/libs-snapshot</url>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <url>http://repo.spring.io/libs-snapshot</url>
    </pluginRepository>
</pluginRepositories>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

XML and application properties cannot be Shared

Suggest to modify

if (StringUtils.hasText(this.properties.getConfig())) {
            factory.setConfigLocation(
                    this.resourceLoader.getResource(this.properties.getConfig()));
        }
        if (StringUtils.hasText(this.properties.getTypeAliasesPackage()))
            factory.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
        if (StringUtils.hasText(this.properties.getTypeHandlersPackage()))
            factory.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
        if (this.properties.getMapperLocations()!=null && this.properties.getMapperLocations().length>0)
            factory.setMapperLocations(this.properties.getMapperLocations());

Could not open ServletContext resource [/mybatis-config.xml]

application.properties

mybatis config

spring.datasource.schema=import.sql
mybatis.config-location=mybatis-config.xml
logging.level.root=WARN
logging.level.sample.mybatis.mapper=TRACE

and mybatis-config.xml same catalog application.properties

How to set VendorDatabaseIdProvider?

Hi there

I will like to just set VendorDatabaseIdProvider to SqlSessionFactory, how should I go about doing it?

Currently, I work around by by setting it in mybatis-config.xml

    <databaseIdProvider type="DB_VENDOR">
        <property name="SQL Server" value="sqlserver"/>
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle" />
    </databaseIdProvider>

Thanks

could provide any example for interceptors added

@eddumelendez, would you mind providing us some interceptors configuration with mybatis spring boot as some example ? from the simple example I could not find any info for such support, currently
the sqlsessionfactory or sqlsessionTemplate creation has been replaced by mybatisAutoConfiguration
and the interceptors required default to be false which won't check whether in container or not.

Fully executable Jar does not scan typeAlias

mybatis-spring-boot 1.0.1 does not scan typeAlias from specified package as follow:

mybatis.type-aliases-package=com.example.model

Specify a type alias in Mapper XML

<!DOCTYPE mapper PUBLIC
        "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.MessageMapper">
    <select id="findOne" resultType="Message"> <!-- ## Use type alias -->
        SELECT code, message FROM t_message WHERE code = #{code}
    </select>
</mapper>

Settings for building a fully executable jar

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable> <!-- Add -->
            </configuration>
        </plugin>
    </plugins>
</build>

Build a fully executable jar

$ ./mvnw clean install

Run a fully executable jar

$ java -jar target/xxxx.jar
...
        at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:118)
        ... 44 more
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'Message'.  Cause: java.lang.ClassNotFoundException: Cannot find class: Message
        at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:120)
        at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:149)
        at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:116)
        ... 48 more
...

Related issue : #35

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.