Java使用JDBC操作数据库

1.创建一个数据库一会用来连接

2.使用idea新建一个Java项目

3.在pom文件中加上相关依赖,并配置Maven路径

XML 复制代码
<dependencies>
    <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.29</version>
    </dependency>
</dependencies>

新建jdbcdemo包和其中的类

java 复制代码
package com.qcby.jdbcdemo;

import com.mysql.jdbc.Driver;

import java.sql.*;

public class JdbcDemo {
    //主方法 主函数 程序入口
    public static void main(String[] args) {
        ResultSet resultSet = null;
        Statement statement = null;
        Connection connection = null;

        try {
            //1,加载驱动    2种  反射加载    直接加载
            //Class.forName("com.mysql.jdbc.Driver");
            DriverManager.registerDriver(new Driver());
            //2,获取连接    4个  用户名 密码  url
            //jdbc:mysql://localhost:3306/test  主协议 二层协议    mysql   IP地址    端口号     127.0.0.1:3306
            connection = DriverManager.getConnection("jdbc:mysql:///jdbctest","root","123456");
            //3,编写sql
            String sql = "select * from student";
            //4,获取执行sql的对象  2种  不安全 sql注入问题 preparedStatement
            statement = connection.createStatement();
            //5,执行sql   拿到结果集
            resultSet = statement.executeQuery(sql);
            //6,遍历结果集
            while (resultSet.next()){
                Student student = new Student();
                student.setId(resultSet.getInt("id"));
                student.setName(resultSet.getString("name"));
                student.setAge(resultSet.getInt("age"));
                student.setSex(resultSet.getString("sex"));
                System.out.println(student);
            }
        }catch (Exception e) {
            throw new RuntimeException(e);
        }finally {
            //永远执行
            //7,关闭资源
            try {
                resultSet.close();
                statement.close();
                connection.close();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
}
java 复制代码
package com.qcby.jdbcdemo;

public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;

    public Student() {

    }

    public Student(Integer id, String name, Integer age, String sex) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}

然后运行,就可以从数据库中读取数据了

相关推荐
DonciSacer1 分钟前
第一章-Rust入门
开发语言·后端·rust
西京刀客18 分钟前
golang常用库之-标准库text/template
开发语言·后端·golang
落榜程序员30 分钟前
浅拷贝和深拷贝的区别
java·开发语言
尤物程序猿31 分钟前
[2025]MySQL的事务机制是什么样的?redolog,undolog、binog三种日志的区别?二阶段提交是什么?ACID怎么保证的?主从复制的过程?
数据库·mysql
KrityCat32 分钟前
查看并升级Docker里面Jenkins的Java17到21版本
java·docker·容器·jdk·jenkins
胖胖日记36 分钟前
Mysql基础语法(一)
数据库·mysql
高铭杰37 分钟前
Postgresql源码(144)LockRelease常规锁释放流程分析
数据库·postgresql··lockrelease·regularlock
_UMR_43 分钟前
SpringBoot集成CXF框架,实现WebService
java·spring boot
renhl2521 小时前
C++11新特性_委托构造函数
java·前端·c++
purrrew1 小时前
【Java ee初阶】多线程(7)
java·开发语言