我从spring数据jpa开始,我已经配置了所有的spring应用程序。其中我的引导类是
@SpringBootApplication
@ComponentScan("com.ticket.booking")
@EnableJpaRepositories("com.ticket.booking.dao")
@EntityScan("com.ticket.booking.entity")
public class TicketBookingManagementApplication {
public static void main(String[] args) {
SpringApplication.run(TicketBookingManagementApplication.class, args);
}
}
我的控制器
@RestController
@RequestMapping(value="/api/ticket")
public class TicketController {
@Autowired
private TicketService ticketService;
@GetMapping(value="/")
public String welcome(){
return "Welcome to Ticket Booking Systems";
}
@PostMapping(value="/add")
public Ticket createTicket(@RequestBody Ticket ticket){
return ticketService.createNewTicket(ticket);
}
@GetMapping(value="/get/{ticketId}")
public Ticket getTicket(@PathVariable ("ticketId") Integer ticketId){
return ticketService.getTicketById(ticketId);
}
}
服务和存储库
@Service
public class TicketService {
@Autowired
private TicketDao ticketDao;
public Ticket createNewTicket(Ticket ticket) {
// TODO Auto-generated method stub
return ticketDao.save(ticket);
}
public Ticket getTicketById(Integer ticketId) {
// TODO Auto-generated method stub
return ticketDao.findOne(ticketId);
}
}
public interface TicketDao extends CrudRepository<Ticket, Integer>{}
在pom.xml中,我添加了
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
它使用mysql-connector-java-5.1.46.jar:5.1.46
并成功映射req,但在运行应用程序时,我遇到了类似的错误
java.sql.SQLException: Unknown system variable 'language'
并将模式导出到数据库
更新您的mysql连接器版本。它会解决你的问题。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
属性:
spring.datasource.url=jdbc:mysql://localhost/schema_name
spring.datasource.username=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
我发布这个答案是因为有人可能会从中受益。
在我的案例中,我使用的是Spring引导,因此pom.xml中的依赖项是
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
因此,spring-boot从spring引导父级中获取了一些默认的依赖版本,这与我的系统安装的mysql服务器版本5.1.22不同,所以这就是该错误背后的原因。
因此,为了解决这个错误,我通过如下手动指定覆盖了版本。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.22</version>
</dependency>
它奏效了。