博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springBoot中碰见的问题
阅读量:6092 次
发布时间:2019-06-20

本文共 2229 字,大约阅读时间需要 7 分钟。

学了段时间java后,想找一框架去学习,听说spring boot比较好,就学习学习,结果碰见一系列问题

1在配置数据库时看准文件如果在application.properties文件中写配置是

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&characterEncoding=UTF-8spring.datasource.username=rootspring.datasource.password=123spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=true

如果在application.yml中写

(重要的事说三次 

  例如 

port: 8082  这个中间是有空格的!
这个中间是有空格的!
这个中间是有空格的! )
server:  port: 8082  servlet.context-path: /bucketspring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://127.0.0.1:3306/bucketSpring?useUnicode=true&characterEncoding=UTF-8    username: root    password: 123  jpa:    hibernate:      ddl-auto: update    show-sql: true

2配置中

  

ddl-auto: update

    这个值有五个,建议使用update这样每次运行都是更新表,如果选择create,每次运行项目会重新创建表,当然你表中数据也一起删除,如果数据重要,你就准备跑路吧

3有关事务的问题

在加了注释@Transactional后发现插入两条数据后没发生事务回滚 这是因为如果用的是springBoot2.0的话需要改下引擎。 把表引擎改成InnoDB 或者在配置中加入
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
#不加这句则默认为myisam引擎

4数据库操作问题

  使用findOne()方法后发现报错

  Spring Boot 2.0版本将findByID()替代了findOne();并且返回的也不再是实体类的类型。而是Optional类型

@GetMapping(value = "selectIdTest")    public Optional selectIdTest(            @RequestParam(value = "id",required = true) Integer id    ){        return testRepository.findById(id);    }

5用springboot创建表不能自己创建也不报错

因为创建的实体类的包和启动类的包名不同

比如

BucketApplication .java文件中包名是  com.zhu.app;

package com.zhu.app;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class BucketApplication {    public static void main(String[] args) {        SpringApplication.run(BucketApplication.class, args);    }}

而在实体类中包名是  com.zhu.obj;

package com.zhu.obj;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class CollectionObj {    @Id    @GeneratedValue    private Integer collectionId;}

这样就扫描不到实体类,所有创建不了

我的解决办法

把实体类的包移动到 com.zhu.app 中  于是我的实体类包名是  com.zhu.app.obj;

 

ider编辑器的两个快捷键

ALT+Enter导入包在编辑框中右击,选择generator,可以拖选住你想要生成get、set方法的属性,点击完成即可自动生成get和set方法。快捷键为:alt+insert

 

目前我作为一个菜鸟还在学习中,以后发现问题继续做笔记

转载于:https://www.cnblogs.com/zhuyupingit/p/9561890.html

你可能感兴趣的文章
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
CCF201612-1 中间数(解法二)(100分)
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
PHP下使用Redis消息队列发布微博
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
执行存储过程返回游标集合转换成List
查看>>
(SQL)比较一个集合是否在另一个集合里存在的方法
查看>>
8. 多态——编译时类型&运行时类型
查看>>
逻辑运算
查看>>
Load Balanced 2
查看>>
Angular : 响应式编程, 组件间通信, 表单
查看>>
Python 软件开发目录规范
查看>>
修改OEM SYSMAN密码
查看>>