SpringBoot学习-2:JPA的应用
程序员文章站
2022-03-02 15:20:31
...
在springboot的开发中,就以简洁快速著称。在数据库操作方面如果使用JPA的话,可以说是一简到底了。
jpa是java persistence api(java 持久层规范)的简写,jpa只是一套规范,而像hibernate等才是具体实现jpa的产品。
话不多说,开始
首先,在创建好的springboot项目pom添加jpa依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在application.yml里配置好数据库相关信息datasource:
datasource:
url: jdbc:mysql://localhost:3306/login?serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
username: root
password: 123456
在application.yml里配置好jpa:
jpa:
hibernate:
# 更新或者创建数据表结构
ddl-auto: update
# 控制台显示SQL
show-sql: true
database: mysql
实体类:
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "data") //@Table来指定和哪个数据表对应;如果省略默认表名就是data
public class Data {
@Id //这是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键
private Integer id;
@Column
private String sd;
@Column //省略默认列名就是属性名
private String wd;
public Data(String wd,String sd ) {
this.wd=wd;
this.sd=sd;
}
public Data(){}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSd() {
return sd;
}
public void setSd(String sd) {
this.sd = sd;
}
public String getWd() {
return wd;
}
public void setWd(String wd) {
this.wd = wd;
}
}
jpa有许多相关的注解,如@Entity表示这个类为实体类;@Table指定数据表表名,如果省略的话默认表名就是当前类名;@Id表示此字段是主键,可设为自增长;@Column用来表明数据表中的列名
编写接口(持久层)
@Repository
public interface DataDao extends JpaRepository<Data,Integer> {
}
到这里其实就可以直接使用了,但是规范点还是得写服务层:
服务层
@Service
public class DataServiceImpl {
@Autowired
DataDao dataDao;
private Logger logger = Logger.getLogger(DataServiceImpl.class);
public void insertData(Data data) {
dataDao.saveAndFlush(data);//不会保存到缓存中,立即刷新到DB
}
public List<Data> readData(){
List<Data> tem=dataDao.findAll();
logger.info("进入函数读取数据");
return tem;
}
}
服务层里写项目中需要用到的方法,我这里是温湿度数据,分为插入数据和查看数据,较为简单。
控制层:
最后是控制层的实现:
@Autowired
DataServiceImpl dataService;
先将服务注入到spring容器中,然后是具体的运用就可以了:
@PostMapping("/ShowInfoIndexServlet")//html页面的ajax数据的查询,返回json数据
@ResponseBody()
public String ShowInfoIndexServlet() throws JsonProcessingException{
dataList=dataService.readData();
logger.info("读取温湿度数据");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(dataList);
return json;
}
这里将数据读取出来,然后返回json数据给前端,前端解析在图表里
进入到图表界面之后就会读取数据了,显示sql语句:
END
推荐阅读
-
JavaScript学习笔记整理_setTimeout的应用
-
pygame学习笔记(2):画点的三种方法和动画实例
-
学习9.内容# 1.函数初识 # 2.函数的定义 # 3.函数的调用 # 4.函数的返回值 # 5.函数的参数
-
ios蓝牙开发学习笔记(四)ios蓝牙应用的后台处理
-
带着新人学springboot的应用01(springboot+mybatis+缓存 上)
-
【玩转SpringBoot】SpringBoot应用的启动过程一览表
-
小白的springboot之路(十二)、集成log4j2日志
-
Orleans[NET Core 3.1] 学习笔记(四)( 2 )获取Grain的方式
-
ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)第1/2页
-
python的函数学习2