JDBC的使用
1.什么是JDBC
JDBC的全称为 java database connectivity ,简单来说就是用java代码来连接数据库的,不仅如此,还可以对数据库中的数据进行增删改查.
JDBC是java的一种规范,本来Java和数据库是没有联系的两个行业,但是在行业的竞争下,Java进而可以连接数据库. 但是在java中是没有加载数据库的驱动的, 也就是说,我们连接数据库是需要去下载这个驱动的,然后导入lib包下(lib包是个jar包,用于导入一些Java中没有的一些东西,如类等等).
lib包建议放在src包下,即在src包下创建即可.
2.准备jar包
在 网址搜索栏中输入 mvnrepository, 进入https://mvnrepository.com/这个网址,在搜索框中输入mysql, 在这里可以使用5.1.47版本 , 点击jar 即可下载.
3.导包
1.在src下创建一个文件夹lib
2.把下载好的jar包赋值到lib文件夹下面
3.鼠标点击jar包,然后鼠标右击 add as Library ,完成导包
4.连接数据库
package com.qf.a_mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
下面是连接数据库的操作
*/
public class Demo1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载mysql的驱动
//Driver驱动是mysql厂商提供的
Class.forName("com.mysql.jdbc.Driver");
//连接数据库的时候需要跑哪些东西
//主机: 是一个url jdbc:mysql://localhost:3306/java2304
//用户名: root
//密码: 123456
//2.准备连接数据库的一些参数
String url = "jdbc:mysql://localhost:3306/java2304?useSSL=false";
String user = "root";
String password = "123456";
//static Connection getConnection(String url, String user, String password)
//3.尝试建立与给定数据库URL的连接。
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
//Connection 与特定数据库的连接(会话) 执行SQL语句并在连接的上下文中返回结果
//4.关闭连接的资源
connection.close();
}
}
5 对数据库进行增删改查
5.1对数据库中的表进行添加操作
package com.qf.b_mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
对数据库中的表进行添加操作
*/
public class Demo1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.准备连接数据库的参数
String url = "jdbc:mysql://localhost:3306/java2304?useSSL=false";
String user = "root";
String password = "123456";
//3.获取连接数据库的对象
Connection connection = DriverManager.getConnection(url, user, password);
//代码走到这一步,代码没有报错,就证明连接数据库已经成功
//Statement createStatement()
//创建一个 Statement对象,用于将SQL语句发送到数据库。去执行
//4.创建搬运工对象 Statement对象 将SQL语句发送到数据库。去执行
Statement statement = connection.createStatement();
//5.写sql语句
String sql = "insert into work(name, age, info) values('张三', 89, '爱看书')";
//6.使用statement对象去执行sql语
//int executeUpdate(String sql)
//执行给定的SQL语句,这可能是 INSERT , UPDATE ,或 DELETE语句,
// 或者不返回任何内容,如SQL DDL语句的SQL语句。
int i = statement.executeUpdate(sql);
System.out.println(i);
//7.关闭资源
statement.close();
connection.close();
}
}
5.2对数据库中表的数据进行删除
package com.qf.b_mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
对数据库中表的数据进行删除
*/
public class Demo3 {
public static void main(String[] args) throws Exception{
//删除一条数据
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/java2304?useSSL=false";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
String sql= "delete from work where id = 1";
int i = statement.executeUpdate(sql);
System.out.println(i);
statement.close();
connection.close();
}
}
5.3对数据库中表的数据进行修改的操作
package com.qf.b_mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
对数据库中表的数据进行修改的操作
*/
public class Demo2 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//修改一条数据
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/java2304?useSSL=false";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
String sql= "update work set name='张飞', info='骚的一批' where id = 1";
int i = statement.executeUpdate(sql);
System.out.println(i);
statement.close();
connection.close();
}
}
5.4查询数据库中所有的数据
```Java
package com.qf.c_mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
查询数据库中所有的数据
*/
public class Demo1 {
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/java2304?useSSL=false";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
String sql = "select * from work";
//ResultSet executeQuery(String sql)
//执行给定的SQL语句,该语句返回单个 ResultSet对象。 结果集
ResultSet resultSet = statement.executeQuery(sql);
//一个ResultSet对象,其中包含给定查询产生的数据 就是数据库中的数据
//表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
System.out.println(resultSet);
/*
resultSet
id name age info 《=======
2 张三 89 大事年表 =====
3 李四 78 傲上矜下
4 扫描 78 你撒解决
*/
//ResultSet对象保持一个光标指向其当前的数据行。
// 最初,光标位于第一行之前。 next方法将光标移动到下一行,
// 并且由于在ResultSet对象中没有更多行时返回false ,
// 因此可以在while循环中使用循环来遍历结果集。
while (resultSet.next()) {
//通过字段的值获取当前字段的数据
//int id = resultSet.getInt("id");
int id = resultSet.getInt(1);
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String info = resultSet.getString("info");
System.out.println(id + ":" + name + ":" + age + ":" + info);
}
resultSet.close();
statement.close();
connection.close();
}
}
String info = resultSet.getString("info");
System.out.println(id + ":" + name + ":" + age + ":" + info);
}
resultSet.close();
statement.close();
connection.close();
}
}