Spring data jpa & JDBC基本原理

开始学习利用Spring data jpa操作数据库

根据官网教程跑通程序代码

Spring data jpa官网教程链接
个人建议是不要直接clone代码,而是跟着教程从new一个project开始一步一步创建项目,添加依赖,然后把代码一行一行对着敲进去,这些参与感强一些。

这个gs-access-data-jpa项目实现的功能:
Spring data jpa & JDBC基本原理_第1张图片

  1. 定义了一个名为Customer的实体
  2. 设置了一个对customer操作的库
  3. 存储几个customer对象
  4. 输出所有的对象属性、有条件的输出对象
    最终程序跑出来的截图如下:
    Spring data jpa & JDBC基本原理_第2张图片

看了代码的应该就能知道,这其实就是按照要求获得了一些用户数据并显示出来了(通过重写toString函数实现的)

但是其实如果跟我一样之前对JDBC等操作数据库的流程不太了解的同学,即使跑通了这个程序其实还是处于很懵的状态,疑惑这就完成了连接数据和操作数据库的过程吗,其实是的。刚开始接触,可能完全不理解,这个时候可以先暂时硬记,记为是固定的规则。

要想理解的话,可以先了解ORM思想

ORM思想

引用链接来自b站上传的视频

  • 主要目的是通过操作实体类来操作数据库表
  • 建立两种映射关系:
    1. 实体类与表的映射关系
    2. 实体类属性与表中字段的映射关系
  • 不关注具体的sql实现语句

mybatis和hibernate都是属于实现了ORM思想的框架:自动生成SQL语句,自动执行

JPA

JPA是一种ORM规范,仅定义了一些接口,底层需要Hibernate和JDBC实现

  • ORM映射元数据:JPA支持XML和注解两种元数据形式
    如:@Entity @Table @Id @Column注解

  • JPA的API:用来操作实体对象,执行CRUD操作

  • JPQL查询语言:通过面向对象查询数据

JDBC原理

Springboot是将很多东西封装好的,直接学会怎么用就行,但是为了能够不那么陌生,可以稍稍理解一点JDBC的原理

这里以MySQL数据库为例讲解JDBC如何操作数据库的

笔记来源是参考b站视频

  • 作用
    是Java数据库连接技术的简称,提供连接各种常用数据库的能力

  • 结构
    1. DriverManager类:依据数据库的不同,管理JDBC驱动
    2. Connection接口:负责连接数据库并担任传送数据的任务
    3. Statement接口:由Connection产生、负责执行SQL语句
    4. ResultSet接口:从数据源读取数据

DriverManager

  • 用法
    • 加载驱动类:Class.forName(“com.mysql.jdbc.Driver”(类的路径))
  • 方法
    • 获取连接对象:getConnection(“url”, “用户名”,“密码”)
    • url jdbc(方式):MySQL(数据库)://localhost:3306(端口号)/要连接的数据库名

Connection

  • 用法
    • 创建一个Statement执行对象
  • 方法
    • createStatement()

Statement

  • 用法
    • 执行SQL语句
  • 方法
    • executeUpadate()

例子

//加载驱动,路径根据自己的设置可以改变
Class.forName("com.mysql.jdbc.Driver");	

//构建连接参数
String url = "jdbc:mysql://localhost:3306/day3_01";
String user = "root";
String password = "123123"

//获取连接对象
Connection connection = DriverManager.getConnection(url, user, password);

//获取执行者
Statement statement = connection.createStatement();

//判断连接对象
if(connection == null){
	System.out.println("连接失败");
}else {
	System.out.println("连接成功");
	
	String sql = "INSERT INTO bank VALUES(NULL, '奥特曼', 5000)";
		if (statement.executeUpdate(sql)>=1) {
			System.out.println("添加成功");
		}else{
			System.out.println("添加失败");
		}
	//关闭连接	
	connection.close();
}

你可能感兴趣的:(java,mysql,spring,boot)