Problemas encontrados ao integrar mybatis com springboot no idea

índice

problema

análise

Resumindo

Uma ou duas notas

Dois, propriedades de configuração

 


problema

O gerador usando mybatis torna-se automaticamente código de engenharia reversa, dao, modelo e arquivos xml de mapeamento. O seguinte erro foi relatado ao chamar a interface

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ccb.market.dao.UserMapper.selectByPrimaryKey
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:225) ~[mybatis-3.4.5.jar:3.4.5]
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48) ~[mybatis-3.4.5.jar:3.4.5]
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65) ~

análise

De acordo com o conteúdo do erro Instrução de limite inválida (não encontrada): com.ccb.market.dao.UserMapper.selectByPrimaryKey. O programa de análise preliminar não encontrou o arquivo de mapeamento xml correspondente ao executar para a camada dao. Qual foi a razão para não encontrá-lo? Pesquisa Wave. Conclui-se que o arquivo xml não é verificado durante a execução do programa, ou seja, há três motivos

1. Esse arquivo xml não existe no arquivo compilado

2. O arquivo da camada dao não corresponde ao nome do arquivo de mapeamento xml

3. O caminho não corresponde.

Finalmente, após algumas tentativas de localizar a seguinte configuração está faltando no application.protites. Esta configuração é muito importante, esta configuração é muito importante, esta configuração é muito importante

#指定mapper.xml的位置,如果mapper.xml和接口类在一个包下就不需要指定了
mybatis.mapper-locations=classpath:com/ccb/market/mapper/*.xml

Resumindo

O Springboot atende as duas condições a seguir, por sua vez, ao integrar mybatis;

Uma ou duas notas

1. Anote @SpringBootApplication

//配置要扫描的包目录
@SpringBootApplication(scanBasePackages = "com.ccb.market")
  Equivalente a
<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
	<context:component-scan base-package="com.ccb.market" />

 

2. Anote @MapperScan ("com.ccb.market.dao") // Configure o diretório para verificar a camada dao
//配置要扫描dao层的目录
@MapperScan("com.ccb.market.dao")

Equivalente a

<!-- myBatis文件 -->
	<bean id="sqlSessionFactory" class="core.common.springmvc.PackagesSqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:config/mybatis-config.xml"/>
		<property name="mapperLocations" value="classpath:com/ccb/market/mapper/*.xml" />
        <property name="typeAliasesPackage" value="com.**.model" />
	</bean>

Dois, propriedades de configuração

#指定mapper.xml的位置,如果mapper.xml和接口类在一个包下就不需要指定了
mybatis.mapper-locations=classpath:com/ccb/market/mapper/*.xml

 

 

Acho que você gosta

Origin blog.csdn.net/qq_34050399/article/details/114884912
Recomendado
Clasificación