我是靠谱客的博主 激昂茉莉,最近开发中收集的这篇文章主要介绍JDBC连接数据库以及JDBC增删改查操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一,创建数据库语句:

CREATE DATABASE school;

二,创建表语句:

CREATE TABLE student(
stuId INT PRIMARY KEY AUTO_INCREMENT,
stuName VARCHAR(20),
stuSex VARCHAR(2),
stuAge INT,
stuAddress VARCHAR(50)
);

三,插入数据语句:

INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('张三','男',18,'河南');
INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('李四','男',19,'江苏');
INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('小红','女',20,'浙江');
INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('小明','男',21,'北京');

四,JDBC进行数据库的操作

先在 IDEA 中创建实体类:类的名字对应数据库表的名字、类的属性对应表的字段。

public class Student {
    //属性
    private int stuId;
    private String stuName;
    private String stuSex;
    private int stuAge;
    private String stuAddress;


    //方法

    public int getStuId() {
        return stuId;
    }

    public String getStuName() {
        return stuName;
    }

    public String getStuSex() {
        return stuSex;
    }

    public int getStuAge() {
        return stuAge;
    }

    public String getStuAddress() {
        return stuAddress;
    }



    public void setStuId(int stuId) {
        this.stuId = stuId;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public void setStuSex(String stuSex) {
        this.stuSex = stuSex;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public void setStuAddress(String stuAddress) {
        this.stuAddress = stuAddress;
    }



    @Override
    public String toString() {
        return "Student{" +
                "stuId=" + stuId +
                ", stuName='" + stuName + ''' +
                ", stuSex='" + stuSex + ''' +
                ", stuAge=" + stuAge +
                ", stuAddress='" + stuAddress + ''' +
                '}';
    }
}

JDBC的增删改查操作

junit的用法补充:

junit可以使方法脱离main方法直接执行,方便进行程序测试。

JDBC的全查操作 查询获得的结果集。结果集的游标默认指向的是数据标题行,需要使用 next() 方法移动游标,指向真正的数据行。该 方法的返回值是boolean类型,如果向下移动有数据行返回true,否则返回false。

JDBC全查的代码操作

import org.junit.Test;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentTest {
    private String driver="com.mysql.cj.jdbc.Driver";
    private String url="jdbc:mysql://localhost:3306/school";
    private String username="root";
    private String password="root";

    @Test
    public void testSelectAll() throws ClassNotFoundException, SQLException {
        //JDBC操作数据库的步骤
        //1.首先在项目根目录创建lib文件夹,放入jdbc驱动程序,然后Add As Library
        //2.加载数据库驱动
        Class.forName(driver);
        //3.使用驱动管理器来获得连接---获得一个数据库连接对象Connection
        Connection con= DriverManager.getConnection(url, username, password);
        //4.使用Connection创建PreparedStatement预处理对象---PreparedStatement对象可以执行带 ? 的sql语句
        String sql="select * from student";
        PreparedStatement pstm = con.prepareStatement(sql);
        //5.使用PreparedStatement对象执行SQL语句,获得ResultSet结果集对象
        ResultSet rs = pstm.executeQuery();
        //6.操作判断--增删改返回的是影响的行数(返回值是int),只有查询获得结果集(返回值ResultSet)
        //让结果集的游标不断的往下移动,直到没有数据的时候结束循环
        List<Student> studentList=new ArrayList<>();
        while (rs.next()){
            //根据字段名称获取表中的数据
            int stuId=rs.getInt("stuId");
            String stuName=rs.getString("stuName");
            String stuSex=rs.getString("stuSex");
            int stuAge=rs.getInt("stuAge");
            String stuAddress=rs.getString("stuAddress");
            //把以上数据封装到Student对象中
            Student student=new Student();
            student.setStuId(stuId);
            student.setStuName(stuName);
            student.setStuSex(stuSex);
            student.setStuAge(stuAge);
            student.setStuAddress(stuAddress);
            //把当前行封装后的Student对象装载到 List集合中
            studentList.add(student);
        }
        System.out.println(studentList);
        //7.回收资源,先关闭rs结果集对象 再pstm预处理对象 最后con连接对象
        if(rs!=null){
            rs.close();
        }
        if(pstm!=null){
            pstm.close();
        }
        if(con!=null){
            con.close();
        }
    }
}

JDBC添加的代码操作

import org.junit.Test;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentTest {
    private String driver="com.mysql.cj.jdbc.Driver";
    private String url="jdbc:mysql://localhost:3306/school";
    private String username="root";
    private String password="root";


    @Test
    public void testAdd() throws ClassNotFoundException, SQLException {
        //1.导入驱动包
        //2.通过反射加载驱动程序
        Class.forName(driver);
        //3.通过驱动管理器获得数据库的连接对象
        Connection con= DriverManager.getConnection(url, username, password);
        //4.通过连接对象,获取SQ预处理对象
        String sql="insert into student(stuName,stuSex,stuAge,stuAddress)values(?,?,?,?)";
        PreparedStatement pstm = con.prepareStatement(sql);
        //实际开发是前端页面传递过来的数据,此处我们直接模拟一组数据
        Student student=new Student();
        student.setStuName("李四");
        student.setStuSex("男");
        student.setStuAge(19);
        student.setStuAddress("江苏");
        //5.1预处理对象的sql语句有 ? 所以需要进行传参
        pstm.setObject(1,student.getStuName());
        pstm.setObject(2,student.getStuSex());
        pstm.setObject(3,student.getStuAge());
        pstm.setObject(4,student.getStuAddress());
        //5.2执行更新(增删改都叫做数据库的更新,更新返回的是影响的行数)
        int n = pstm.executeUpdate();
        //6判断影响的行数 n > 0 表示插入成功,否则插入失败
        if(n>0){
            System.out.println("插入数据成功");
        }else{
            System.out.println("插入数据失败");
        }
        //7释放资源
        if((pstm!=null)){
            pstm.close();
        }
        if((con!=null)){
            pstm.close();
        }
    }
}

JDBC删除的代码操作

import org.junit.Test;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentTest {
    private String driver="com.mysql.cj.jdbc.Driver";
    private String url="jdbc:mysql://localhost:3306/school";
    private String username="root";
    private String password="root";


    @Test
    public void testDel() throws ClassNotFoundException, SQLException {
        //1.导入驱动包
        //2.通过反射加载驱动程序
        Class.forName(driver);
        //3.通过驱动管理器获得数据库的连接对象
        Connection con= DriverManager.getConnection(url, username, password);
        //4.通过连接对象,获取SQ预处理对象
        String sql="delete from student where stuId=?";
        PreparedStatement pstm = con.prepareStatement(sql);
        //5.1预处理对象的sql语句有 ? 所以需要进行传参
        int stuId=2;
        pstm.setObject(1,stuId);
        //5.2执行更新(增删改都叫做数据库的更新,更新返回的是影响的行数)
        int n = pstm.executeUpdate();
        //6判断影响的行数 n > 0 表示删除成功,否则删除失败
        if(n>0){
            System.out.println("删除数据成功");
        }else{
            System.out.println("删除数据失败");
        }
        //7释放资源
        if(pstm!=null){
            pstm.close();
        }
        if(con!=null){
            con.close();
        }
    }
}

最后

以上就是激昂茉莉为你收集整理的JDBC连接数据库以及JDBC增删改查操作的全部内容,希望文章能够帮你解决JDBC连接数据库以及JDBC增删改查操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部