1.JDBC概述
JDBC的全称:Java database connectivity -> Java连接数据库。
可以使用Java代码连接数据库,然后对数据库中的数据进行增删改查。
1.1入门案例
加载驱动:驱动是mysql厂商提供的,不是jdk提供的,所以,需要下载jar包。
如何下载jar包?
①通过https://mvrepository.com/
②在搜索框中输入mysql
③找到要下载的版本(一般下载使用量最多的)
将下载好的jar包导入工程中:
①在src文件夹下面新建一个lib文件
②将下载好的jar包复制到lib文件夹下面
③点击jar包,右键add as library即可
连接数据库的操作:
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");
//连接数据库的时候需要跑哪些东西
//http://ww.baidu.com
//主机: 是一个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();
}
}
1.2对数据库中的表中的数据进行增删改查
1.2.1添加操作
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();
}
}
1.2.2修改操作
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();
}
}
1.2.3删除操作
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();
}
}
1.2.4查询所有数据
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(