文章目录

  • 前言
  • 一、mysql-connector-java
  • 二、使用步骤
  • 1.mysql-connector-java-5
  • 2.mysql-connector-java-8
  • 三、mysql-connector-java的使用
  • 代码的实现
  • 举例



前言

随着我们对java和数据库的深入学习,java与数据库连接也让很多小伙伴感到头疼,而本文就介绍了利用JDBC中的基础API建立java与数据库的连接。


一、mysql-connector-java

要像让我们的java项目连接到我们的数据库,我们需要先下载一个jar包,而mysql-connector-java就是我们连接数据库所需要的jar包,mysql-connector-java共分为5和8的版本。
mysql-connector-java的下载路径如下:https://dev.mysql.com/downloads/connector/j/

二、使用步骤

1.mysql-connector-java-5

该版本支持5.6、5.7、8.0版本的mysql数据库,支持3.0、4.0、4.1、4.2版本的jdbc,在使用该版本时Driver类的实现路径是
com.mysql.jdbc.Drive。

2.mysql-connector-java-8

支持5.6、5.7、8.0版本的mysql数据库,支持4.2版本的jdbc,在使用该版本时的Driver类的实现路径是com.mysql.cj.jdbc.Drive。


三、mysql-connector-java的使用

首先,我们要创建一个空项目,之后我们在src目录下创建一个名为lib的Directory文件

JAVA存储数据库数据 java存储数据库功能的包_mysql


JAVA存储数据库数据 java存储数据库功能的包_mysql_02


然后,我们将我们的mysql-connector-java包复制到lib文件内

JAVA存储数据库数据 java存储数据库功能的包_java_03


复制完后,我们需要做的就是启动这个jar包

JAVA存储数据库数据 java存储数据库功能的包_bc_04


如果我们的jar包变为可展开模式的话就说明我们jar包启动成功了

JAVA存储数据库数据 java存储数据库功能的包_mysql_05

代码的实现

//1.注册驱动

//注册驱动时,我一般使用反射触发的方案
//如果你用的jar包是5版本的话,这里的cj也就不用加上了,也就是"com.mysql.jdbc.Driver"
Class.forName("com.mysql.cj.jdbc.Driver");

//2.获取连接

Connection connecti = DriverMapper.getConnection();
//getConnection()方法共有三种,分别是有一个参数url、有两个参数url和info,最后一个是有三个参数url、user和password
//一个参数:String url 的格式: "jdbc:mysql://127.0.0.1:3306/数据库名?user=账号&password=密码"
//两个参数:String url的格式:"jdbc:mysql://127.0.0.1:3306/数据库名",而Properti info也就是将user和password封装进一个对象
//三个参数:String url的格式:"jdbc:mysql://127.0.0.1:3306/数据库名",String user是你的数据库账户名,String password是你的数据库密码

//3.创建statement

//这一步有两种方案,一种是静态方案,另一种是预编译的方案,这里我们使用预编译的方案
PreparedStatement preparedstatement = connection.preparedStatement(sql语句结构);
//这里的sql语句结构就是你要对数据库的操作,例如"select * from 数据库名"

//4.占位符赋值

//对你sql语句中的占位符?进行赋值操作
preparedstatement.setObject(?的位置 从左到右 从1开始,值);


//5.发生SQL语句

//我们发送的sql语句分为DQL和非DQL是有不同的发送方法的
int rows = executeUpdate();//非DQL
Result result = executeQuery();//DQL

//6.查询结果的解析

if(result.next())或while(result.next())
//因为result返回的结果的光标是停在数据的前一行的,所以我们要使用next()方法使光标下移,这里的判断就是判断光标下移是否
//还有数据,如果有,返回true,没有则返回false

//获取列的数据即可
get类型(int 列的下角标 从1开始);
//获取列的信息
getMetadata();  ResultsetMetaData对象包含的就是列的信息

//7.关闭资源

//调用对应的close()方法即可

举例

在这里插入代码片@Test
public void testDelete() throws ClassNotFoundException, SQLException {

//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");

//2.获取连接
Connection connection = DriverManager.getConnection("jdbc:mysql:///atguigu", "root", "123456");

//3.编写SQL语句结果,动态值的部分使用?代替
String sql = "delete from t_user where id=?";

//4.创建prepareStatement,并且传入SQL语句的结果
PreparedStatement preparedStatement = connection.prepareStatement(sql);

//5.占位符赋值
preparedStatement.setObject(1,3);

//6.发送SQL语句
int rows = preparedStatement.executeUpdate();

//7.输出结果
if (rows > 0){

System.out.println("删除成功!!");
}else {

System.out.println("删除失败!!");
}

//8.关闭资源
preparedStatement.close();
connection.close();
}

其对应的输出结果为:删除成功!!