Java数据库连接(JDBC)

本文介绍了如何使用Java进行数据库连接,包括加载JDBC驱动、建立数据库连接、创建Statement对象、编写SQL语句并执行,以及处理查询结果。通过详细的步骤,展示了从连接配置到数据操作的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入jar包(丰富的工具类)

获取和数据库的连接(用户名、密码)

通过程序执行SQL

通过程序处理结果

1、首先加载驱动文件

2、创建连接对象

Connection 对象名 = DriverManager.getConnection( "jdbc:mysql://连接地址:接口/库名?charcaterEncoding=编码", "账户","密码");

Class.forName("com.mysql.jdbc.Driver");//加载驱动文件
Connection conn = DriverManager.getConnection(//创建连接对象
        "jdbc:mysql://localhost:3306/jt_db?charcaterEncoding=utf-8",
        "root","root");

3、创建传输器对象

Statement 对象名 = conn.createStatement();

Statement stat = conn.createStatement();

 4、编写sql语句

String sql= "select * from stu2";

5、创建结果集对象并通过传输器发送sql语句

执行查询时使用executeQuery,,执行修改的时候使用executeUpdate
ResultSet rs = stat.executeQuery(sql);

6、遍历结果(查询时)

使用get获取对应列的数据

while (rs.next()){
    //next:判断是否有下一条记录,内部包含一个指针,默认指向第一条,
    //取出每一条记录
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String gender = rs.getString("gender");
    System.out.println(id+"--"+name+"--"+gender);
}

create table account(
id int primary key auto_increment,
name varchar(50),
money double
);
insert into account values(null, 'tom', 1000);
insert into account values(null, 'andy', 1000);
insert into account values(null, 'tony', 1000);

package com.tedu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author 
 * @data 2021/12/2 20:45
 */
public class TestJDBC {
    //书写main方法 psvm
    public static void main(String[] args) throws Exception {
        //1.注册驱动
        /**
         * Class.forName 创建指定的全路径文件的字节码文件对象
         * 此处并不是因为要是用反射来完成某些功能,
         * 只是为了加载这个文件而已,为了执行这句代码
         * DriverManager.registerDriver(new Driver());
         * 自动注册驱动
         * alt+enter 自动提示
         */
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取和数据库的连接
        /**
         * CMD登录数据库:
         *      mysql -uroot -proot
         *      use cgb2109
         * JDBC连接数据库:
         * String url=
         * "jdbc:mysql://访问数据库的ip:端口号/要访问的数据库名?characterEncoding=utf-8"
         * 如果访问的数据库的ip和端口号是localhost:3306的话,可以省略
         */
        String url=
                "jdbc:mysql:///cgb2109?characterEncoding=utf-8";//指定连接哪个数据库
        String user="root";//用户名
        String pwd="root";//密码 要和自己的密码一致
        //快速生成变量名 crtl+alt+v
        Connection conn = DriverManager.getConnection(url, user, pwd);
        //3.获取传输器,执行SQL
        /**
         * java程序-------------MYSQL
         * 负责程序和数据库信息连接的
         *      1.程序传递给数据库的内容,比如要插入一条记录
         *      2.数据库返回给程序的内容,比如查询的记录信息
         * 传输器对象必须要依赖于连接对象创建
         */
        Statement stat = conn.createStatement();
        //4.执行SQL
        /**
         * 执行查询的SQL,需要调用executeQuery方法
         * 如果执行修改的SQL,需要调用executeUpdate
         */
        String sql="select * from stu";
        //ResultSet 包含了执行SQL后,返回的所有的信息
        ResultSet rs = stat.executeQuery(sql);
        //5.输出结果,但是需要手动处理结果集对象
        //System.out.println(rs);com.mysql.jdbc.JDBC4ResultSet@6433a2
        /**
         * next 判断是否有下一条记录
         * next内部包含一个指针,默认指向第一条记录之前
         * 每次循环都判断是否有下一条记录,如果有就返回true,执行循环
         * 然后指针下移到下一条,然后就可以取出指针指向的这条记录,
         * 直到指针移到最后一条记录,在判断,返回false,循环结束
         */
        while (rs.next()){
            //取出每一条记录
            //1表示这张结果集中的第一列
            int id = rs.getInt("id");//id这一列
            String name = rs.getString(2);//第二列
            String gender = rs.getString(3);
            System.out.println("id:"+id+"|name:"+name+"|gender:"+gender);
        }
        //6.释放资源
        /**
         * 需要释放三个资源,conn,stat,rs
         * 越晚创建的对象越先释放
         * 每个对象都是依赖于上一个对象创建的,所以如果直接提前关闭conn,
         * 很可能会导致创建stat时没有对象,就会报空指针异常
         */
        rs.close();
        stat.close();
        conn.close();
        //输出一句话到控制台 sout
        //System.out.println("连接成功");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GOWE845

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值