Java学习(13)

4.JDBC

4.1JDBC概述

全称: Java database connectivity java连接数据库

使用Java代码去连接数据库,然后对数据库中的数据进行增删改查!!!

JDBC:是一种规范,sun公司想让Java去连mysql数据库。然后他(Java)就去和mysql厂商

Java厂商让mysql厂商去提供驱动,是连接数据库的驱动。所以mysql自己封装了一个jar包,这个jar就是

连接数据库的驱动

4.2入门案例

1.加载驱动

是mysql厂商提供 ,是不是jdk的东西,所以要下载jar包因为jar】包中有那个Driver类

如何下载jar包?

1.百度 https://mvnrepository.com/
2.在搜索框中输入mysql
3.找到版本  5.1.47  版本jar包点进去

将下载好的jar导入到咱们的工程中

1.在src文件夹下面新建一个lib文件
2.将下载好的jar包复制到lib文件夹下面
3.鼠标点上这个jar包,右键add as Libaray... 即可
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");
        //连接数据库的时候需要跑哪些东西
        //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();
    }
}
​

以上是连接数据库的操作

4.3对数据库中表中的数据进行增删改查

4.3.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();
​
​
    }
}
​

4.3.2对数据库中表的数据进行修改的操作

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();
    }
}
​

4.3.3对数据库中表的数据进行删除

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();
    }
}
​

4.3.4查询数据库中所有的数据

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对象保持一个光标指向其当前的数据行。
        // 最初,光标位于第一行之前。 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();
​
    }
}
​

查询出来的数据就是单纯打印一下吗?并不是的,你要将查询出来的数据赋值给一个类对象,然后存到集合中

package com.qf.c_mysql;
​
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
​

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对象保持一个光标指向其当前的数据行。
        // 最初,光标位于第一行之前。 next方法将光标移动到下一行,
        // 并且由于在ResultSet对象中没有更多行时返回false ,
        // 因此可以在while循环中使用循环来遍历结果集。
        List<Work> works = new ArrayList<>();
        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");
​
            Work work = new Work(id, name, age, info);
            works.add(work);
​
​
        }
        System.out.println(works);
        resultSet.close();
        statement.close();
        connection.close();
​
    }
}
​
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值