Springboot+mybatis 一直报错Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

一定不要加这段代码 这个注解是排除自动注入 导致mapper注入不进去。

//@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)

springboot +mybatis
1、注意几个重要注解
这里写图片描述
bean类中在主键属性中添加@Id
*mapper类不需要添加

@SpringBootApplication
@EnableTransactionManagement // 如果mybatis中service实现类中加入事务注解,需要此处添加该注解
@MapperScan(basePackages = "com.geovis.testDatabase.mapper") // 扫描的是mapper.xml中namespace指向值的包位置
//@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
public class TestDatabaseApplication {

	public static void main(String[] args) {
		//SpringApplication.run(TestDatabaseApplication.class, args);
		SpringApplication app = new SpringApplication(TestDatabaseApplication.class);
		app.run(args);
	}
}
@RestController
@ComponentScan({"******testDatabase.mapper"})
@RequestMapping("/api")
public class UserController {
	@Resource
	private UserService userServiceImpl;
	
	@GetMapping("/selectByid/{id}")
	public User selectByID(@PathVariable Integer id){
		User user = userServiceImpl.findByID(id);
		return user;
	}

}

@Service
@Transactional
public class UserServiceImpl implements UserService{

	@Autowired
	private UserMapper uMapper;
	
	@Override
	public User findByID(int id) {
		User user = uMapper.selectByPrimaryKey(id);
		return user;
	}

	
}

application.yml配置文件(一定要注意空格,不要多加空格,多加一个都不能启动即使是空行)

server:
  port: 9190
  session:
    timeout: 50
  tomcat:
    uri-encoding: UTF-8

spring:
  datasource:
    name: test
    url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
    username: root
    password: 123456
    drive-class-name: com.mysql.jdbc.Driver
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        temp:
          use_jdbc_metadata_defaults: false
mybatis:
  type-aliases-package: com.geovis.testDatabase.bean
  mapper-locations: classpath:mapperxml/*Mapper.xml
  configuration:
    map-underscore-to-camel-case: true
    default-fetch-size: 500
    default-statement-timeout: 80

这里使用mybatis,可以通过数据库反向建立实体类和**mapper.xml。具体见https://blog.csdn.net/qq_18298439/article/details/80499988

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
启动Spring Boot项目报错"Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required"通常是由于配置不正确或缺少必要的配置导致的。根据引用中提到的问题,可能是以下几个原因导致的: 1. 缺少MyBatis的配置:确保在Spring Boot项目的配置文件中正确配置了MyBatis相关的属性,包括数据源、Mapper扫描路径等。 2. 缺少SqlSessionFactorySqlSessionTemplate的配置:在Spring Boot项目中,需要手动配置SqlSessionFactorySqlSessionTemplate。可以通过在配置类中使用@Bean注解来创建并配置它们。 3. 配置错误:检查配置文件中的属性名是否正确拼写,并确保属性值的类型正确。 以下是一个示例配置类,演示如何正确配置SqlSessionFactorySqlSessionTemplate: ```java @Configuration @MapperScan(basePackages = "com.example.mapper", sqlSessionTemplateRef = "sqlSessionTemplate") public class MyBatisConfig { @Autowired private DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); // 配置其他属性,如MapperLocations等 return sessionFactory.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } } ``` 请注意,上述示例中的`com.example.mapper`是Mapper接口所在的包路径,你需要根据自己的项目结构进行相应的修改。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值