springboot (5) 与数据库进行交互
来源:互联网 发布:淘宝卖医疗器械手续, 编辑:程序博客网 时间:2024/06/05 05:39
本篇开始讲述springboot项目如何与数据库交互,本篇大致分为两部分:
一.与数据库建立连接
二.使用spring data jpa与数据库进行交互
一、与数据库建立连接,本文采用MYSQL数据库
1.首先在pom.xml中添加MYSQL依赖jar
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.在application.properties中添加数据库配置如下:
spring.datasource.url = jdbc:mysql://192.168.0.88:3306/test //数据库地址
spring.datasource.username = root //用户名
spring.datasource.password = root //密码
spring.datasource.driverClassName = com.mysql.jdbc.Driver //老司机名称
spring.datasource.max-active=20 //最大活跃数
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10 //初始连接数 根据自己情况定义
3.项目启动,如果不报错,则配置完成
二、与数据库进行交互,目前大多数公司都使用JPA进行与数据库交互,好处是在将持久层编写更加规范,底层使用的是hibernate,因此若想使用mybatis进行开发的话,可
自行百度,本篇讲解如何使用JPA。
1.在pom.xml文件中引入依赖JAR
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2.在application.properties中添加JPA配置
//设置数据库类型
spring.jpa.database = MYSQL
//是否显示SQL语句
spring.jpa.show-sql = true
//自动更新
spring.jpa.hibernate.ddl-auto = update
//实体映射命名
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
//配置方言
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
3.定义实体,通过JPA生成表结构
@Entity //实体注解,生成表结构
public class Father {
@Id //主键注解,由于本人项目中主键一般使用UUID,因此定义String类型,若使用int类型,可以再加一个@GeneratedValue,主键可以设置生成策略
private String id;
private String name;
private Integer age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
4.编写DAO
public interface FatherDao extends CrudRepository<Father, String>{
}
解析:继承的CrudRepository接口是JPA中常用的一个不含分页的接口,JPA包含能继承的接口有一下几种:
A、epository:仅仅是一个标识,表明任何继承它的均为仓库接口类。
C、PagingAndSortingReposito
到此,就可以直接调用DAO层方法了,有人问,不用写DAO的实现DaoImpl么,当然不用,不然为什么那么多人想使用JPA呢,方便快捷。下面还有更方便的。
如果你仅仅是继承了这个接口,目前只能使用其中定义的一些方法,比如save(),delete()等一些通用的方法,那就有人问了,我如果有一些根据条件进行的GRUD操作呢?
当然这就是JPA的强大之处,支持命名即方法,简单的说就是 定义一个方法名,比如说 findByName(),不需要写实现,JPA即可自动通过名字这个属性进行查询,不过命名的规范需要参照JPA的命名规范了。还要注意一点,自定义的接口需要在DAO中声明,切记不要忘,方法名一定要驼峰命名法,属性条件一定要与实体中属性相同。
public interface FatherDao extends CrudRepository<Father, String>{
public String findByName(String name);
}
其实,除了这一种自定义方法外,还有别的方法,大家可以自行百度。
4.Service中调用
首先注入Dao,其次调用即可
@Autowired
private FatherDao fatherDao;
@Transactional
public Father save(Father father){
return fatherDao.save(father);
}
到此,与数据库的交互最基本的操作就是如此,大家可以深入自行研究,比如级联操作,多对多关系,复杂查询等。。。
- springboot (5) 与数据库进行交互
- Flex怎么与数据库进行交互?
- PHP:使用PDO与数据库进行交互
- [Mybatis] SpringBoot -mybatis 常用mysql数据库交互
- 与插件进行交互
- xml与数据库交互
- flex与数据库交互
- flex与数据库交互
- flex与数据库交互
- ajax与数据库交互
- 与Cassandra0.7.进行交互
- unity3d与ios进行交互
- 与服务器进行简易交互
- Python与C++进行交互
- spark与hbase进行交互
- python与web进行交互
- Android与服务器进行交互
- js与webview进行交互
- bzoj4259 -- FFT
- Namenode
- 根据传入的sql查询结果返回HashMap<String,String>
- Git初识(完结)
- Linux命令学习总结: hexdump命令
- springboot (5) 与数据库进行交互
- Android消息机制(2)- Message和MessageQueue
- 欢迎使用CSDN-markdown编辑器
- 常用套接字选项(SOL_SOCKET级别)
- 一个例子让你了解Java反射机制
- linux中的信号2——进程如何处理信号?
- PHP微信公众号开发常用功能
- 内存崩溃delete和deleteLater
- python核心编程(一)