spring-boot简单demo-1【新建spring-boot工程并配置】

打开idea,点击File->New->Project
 
 
选择Spring Initializr,然后选择Default,点击Next
 
 
填写包名等等信息(这里我全部用的是默认值),点击Next
 
 
 
在Web页面勾选Spring Web
 
在SQL页面勾选JDBC API和Spring Data JPA
 
选择路径,点击Finish
 
选择自动导入maven
 
 
新建好的工程结构如下,其中DemoApplication是程序入口
 
 
设置打包形式为jar
 
 
(有时候一些maven包版本不一样会有报错,记得对一下版本)
 
加入mysql依赖
 
在application.properties文件中配置mysql
 
############################################################

# mysql
        
############################################################

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false

spring.datasource.username=root

spring.datasource.password=1234

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.max-idle=10

spring.datasource.max-wait=10000

spring.datasource.min-idle=5

spring.datasource.initial-size=5
首先我们可以编写一个HelloController测试一下
 
运行程序,控制台输出如下内容
 
 
用浏览器访问localhost:8080/hello,可以看到页面显示字符Helloworld!
 
我们再来新建一个实体类Student,用@Entity 注解表明该类为一个实体类,@Table注解说明其表格名称
 
@Id注解用于指定主键,@GeneratedValue注解用于指定主键生成方法,然后设置所有属性的set和get方法,这里注意了:没有get方法private属性不能直接在html中访问,会报Whitelabel Error Page错误
 
 
★主键生成策略有以下几种:
  • IDENTITY:主键自增,Oracle 不支持这种方式; 
  • AUTO: JPA自动选择合适的策略,缺省值; 
  • SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
  • TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植
 
我们新建一个接口StudentRepository继承JpaRepository<Student,Integer>
 
 
现在我的数据库student表长这样
 
对了,如果要数据库自动生成表记得在 application.properties文件中配置gpa,不然数据库中没有这个表就会报错
############################################################
#
# gpa
#
############################################################
spring.jpa.generate-ddl=true
然后我们来编写controller可以实现对数据库表的操作,用@RestController注释这个类,用@Autowired注释给studentRepository自动注入,用findall方法查找所有学生信息并返回,运行一下~
 


在浏览器中输入localhost:8080/student,成功读出了数据(我这里用的是QQ浏览器,有的浏览器会中文乱码的)

 
 
★注意:@RestController注解相当于@ResponseBody + @Controller合在一起的作用(如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解),但使用@RestController这个注解,就不能返回jsp、html页面,视图解析器无法解析jsp、html页面
 

说白了就是我们这里不能只用 @Controller注解,不然凉凉

@GetMapping是一个组合注解,相当于@RequestMapping(method = RequestMethod.GET)

@PostMapping是一个组合注解, 相当于  @RequestMapping(method = RequestMethod.POST)

 

最后放一下工程的文件结构

 

发布了51 篇原创文章 · 获赞 1 · 访问量 1081

猜你喜欢

转载自blog.csdn.net/si_si_si/article/details/104683345