JDBC连接数据库2

个人简介

  • 作者简介:大家好!我是yukki。
  • 个人主页:yukki.
  •  喜欢:🌈点赞🌈收藏🌈一键三连!
  • 共勉

目录

一、实验原理:

数据库驱动的实现方式 :

二、操作步骤:

1、搭建数据库环境,创建数据库,创建表,添加基础数据

2、创建项目环境,导入数据库驱动

3、编写JDBC测试程序

4、实现对表中数据进行增、删、改、查操作。


一、实验原理:

JDBC是一套协议,是JAVA开发人员和数据库厂商达成的协议,也就是由Sun定义一组接口,由数据库厂商来实现,并规定了JAVA开发人员访问数据库所使用的方法的调用规范。

JDBC的实现是由数据库厂商提供,以驱动程序形式提供。

JDBC在使用前要先加载驱动。

JDBC对于使用者要有一致性,对不同的数据库其使用方法都是相同的。

驱动开发必须要实现Driver接口。

数据库驱动的实现方式 :

1、JDBC-ODBC桥接式

2、JDBC网络驱动,这种方式是通过中间服务器的协议转换来实现的

3、JDBC+本地驱动,这种方式的安全性比较差。

JDBC驱动,由数据库厂商实现。

二、操作步骤:

1、搭建数据库环境,创建数据库,创建表,添加基础数据

2、创建项目环境,导入数据库驱动

3、编写JDBC程序,连接测试

4、实现对表中数据进行增、删、改、查操作。

1、搭建数据库环境,创建数据库,创建表,添加基础数据

​
create table student(id INT PRIMARY KEY,name CHAR(10),sex CHAR(10),age CHAR(10),sorce CHAR(10));

​insert into student(id,name,sex,age,sorce) values ('202001','张三','男','20','100');
insert into student(id,name,sex,age,sorce) values ('202002','李四','男','18','99');
insert into student(id,name,sex,age,sorce) values ('202003','小敏','女','21','80');

2、创建项目环境,导入数据库驱动

3、编写JDBC测试程序

连接测试

package JdbcTest;

import java.sql.*;

public class test {
	public static void main(String[] args) {
		String driver = "com.mysql.cj.jdbc.Driver";// 数据库驱动类所对应的字符串
		String URL = "jdbc:mysql://localhost:3306/school";
		// URL语法格式如下
		// jdbc:mysql:是固定的写法,后面跟主机名localhost,3306是默认的MySQL端口号
		// serverTimezone=UTC是指定时区时间为世界统一时间
		// useUnicode=true是指是否使用Unicode字符集,赋值为true
		// characterEncoding=utf-8是指定字符编码格式为UTF8
		Connection conn = null;
		// Connection接口代表Java程序和数据库的连接对象,只有获得该连接对象后,才能访问数据库,并操作数据表
		try {
			Class.forName(driver);// 加载MySQL数据库驱动
		} catch (java.lang.ClassNotFoundException e) {// 如果找不到这个类,执行下面的异常处理
			System.out.println("驱动程序配置未配置成功!!!");
		}
		try {
			conn = DriverManager.getConnection(URL, "root", "123456");// 建立和数据库的连接,并返回表示连接的Connection对象
			System.out.println("数据库连接成功!!!");
		} catch (Exception e) {// 未连接成功,执行下面的异常处理
			System.out.println("数据库连接失败!!!");
		}
	}
}

4、实现对表中数据进行增、删、改、查操作。

(1)通过JDBC进行添加数据的操作

package JdbcTest;

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

public class insert {

	public static void main(String[] args) throws SQLException {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/school";
			String username = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, username, password);
			String sql = "insert into student(id,name,sex,age,sorce) values ('202010','小花','女','29','60');";

	        PreparedStatement statement=conn.prepareStatement(sql);

	        statement.executeUpdate();
	        
	        System.out.println("增加数据成功!");

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (rs != null) {
				rs.close();
			}
			if (stmt != null) {
				stmt.close();
			}
			if (conn != null) {
				conn.close();
			}
		}
	}
}

(2)通过JDBC进行删除数据的操作

package JdbcTest;

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

public class delete {

	public static void main(String[] args) throws SQLException {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/school";
			String username = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, username, password);
			String sql = "delete from student where id=202003";
			
	        PreparedStatement statement=conn.prepareStatement(sql);

	        statement.executeUpdate();
	        
	        System.out.println("删除数据成功!");

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (rs != null) {
				rs.close();
			}
			if (stmt != null) {
				stmt.close();
			}
			if (conn != null) {
				conn.close();
			}
		}
	}
}

(3)通过JDBC进行更改数据的操作

package JdbcTest;

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

public class update {

	public static void main(String[] args) throws SQLException {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/school";
			String username = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, username, password);
			String sql = "update student set sorce='99' where id=202001";
			
	        PreparedStatement statement=conn.prepareStatement(sql);

	        statement.executeUpdate();
	        
	        System.out.println("更新数据成功!");

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (rs != null) {
				rs.close();
			}
			if (stmt != null) {
				stmt.close();
			}
			if (conn != null) {
				conn.close();
			}
		}
	}
}

(4)通过JDBC进行查询数据的操作

package JdbcTest;

import java.sql.*;
/**
 * @author zzc
 * @create 2022-05-06 16:00
 */
public class query {
    public static void main(String[] args) throws SQLException {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/school";
            String username = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, username, password);
            stmt = conn.createStatement();
            String sql = "select * from student;";
            rs = stmt.executeQuery(sql);
            System.out.println("id|name|sex" + "|age|sorce");
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String sex = rs.getString("sex");
                String age = rs.getString("age");
                String sorce = rs.getString("sorce");
                System.out.println(id + "|" + name + "|" + sex + "|" + age + "|" + sorce);

            }
            System.out.println("查询数据成功!");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
    }
}

人是生而自由的,但却无往不在枷锁之中。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值