Bahasa pengaturcaraan, seperti Java, C, C++, Python dan pangkalan data lain, seperti Oracle, MySQL, SQL Server dan pakej pemacu pangkalan data lain: pangkalan data yang berbeza sepadan dengan Bahasa Pengaturcaraan yang berbeza menyediakan pakej pemacu pangkalan data yang berbeza Contohnya, MySQL menyediakan pakej pemacu Java mysql-connector-java. Jika anda ingin menggunakan Java untuk mengendalikan pangkalan data Oracle, anda mesti menggunakan pakej pemacu pangkalan data Oracle ojdbc.
Java Database Connectivity, dirujuk sebagai JDBC, ialah API Java yang digunakan untuk menyambung ke pangkalan data. Java API digunakan untuk melaksanakan pernyataan SQL, yang merupakan spesifikasi sambungan pangkalan data dalam Java. API ini terdiri daripada beberapa kelas dan antara muka dalam pakej java.sql.*, javax.sql.* Ia menyediakan API standard untuk pembangun Java untuk mengendalikan pangkalan data dan boleh menyediakan akses bersatu kepada berbilang pangkalan data hubungan.
DBC menyediakan kaedah akses bersatu untuk pelbagai pangkalan data relasi Sebagai abstraksi peringkat tinggi bagi API akses pangkalan data pengeluar tertentu, ia mengandungi beberapa antara muka biasa kelas.
Hierarki pangkalan data akses JDBC:
Mula-mula semak versi MySQL anda dalam perkhidmatan komputer, dan kemudian Enter. repositori maven
Oleh kerana versi saya sendiri selepas 5.0, saya memilih 5.1.47, dan versi utama mestilah konsisten
Muat turun sahaja balang Ingat, pakej balang tidak boleh dinyahmampat
Seterusnya, letakkan idea dalam direktori akar. Cipta folder di bawah dan kemudian import pakej balang
Jika tiada ralat dan terus OK, tiada masalah, menandakan import berjaya
Mewujudkan sambungan pangkalan data
// 加载JDBC驱动程序:反射,这样调用初始化com.mysql.jdbc.Driver类,即将该类加载到JVM方法 区,并执行该类的静态方法块、静态属性。 Class.forName("com.mysql.jdbc.Driver"); // 创建数据库连接 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test? user=root&password=root&useUnicode=true&characterEncoding=UTF-8");
//MySQL数据连接的URL参数格式如下: jdbc:mysql://服务器地址:端口/数据库名?参数名=参数值
Buat arahan operasi (Pernyataan)
Statement statement = connection.createStatement();
Laksanakan pernyataan SQL
ResultSet resultSet= statement.executeQuery( "select id, sn, name, qq_mail, classes_id from student");
Proses set hasil
while (resultSet.next()) { int id = resultSet.getInt("id"); String sn = resultSet.getString("sn"); String name = resultSet.getString("name"); int classesId = resultSet.getInt("classes_id"); System.out.println(String.format("Student: id=%d, sn=%s, name=%s, classesId=%s", id, sn, name, classesId)); }
Keluarkan sumber (set hasil tutup, arahan, sambungan)
//关闭结果集 if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } //关闭命令 if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } //关闭连接命令 if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } }
Mula-mula buat pangkalan data dan buat jadual
create database java122;
create table text(id int,name varchar(5),class_id int);
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class TextJDBC { //DataSource //Connection //PrepareStatement public static void main(String[] args) throws SQLException{ //1、创建DataSource对象 DataSource dataSource = new MysqlDataSource(); //设置相关内容 //URL User password //向下转型 访问数据库 协议名 ip地址 要访问那个地址 ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("180210"); //2、和数据库连接.进行后续连接 //connect生命周期较短 Connection connection = dataSource.getConnection(); //3、拼装SQL语句 int id = 1; String name = "曹操"; int class_id = 10; //?是一个占位符,可以把一个具体的变量的值替换到? String sql = "insert into text values(?,?,?)"; PreparedStatement statement = connection.prepareStatement(sql); //1 2 3相当与?的下标 statement.setInt(1,id); statement.setString(2,name); statement.setInt(3,class_id); System.out.println("statement:" + statement); //4、执行SQL语句 int ret = statement.executeUpdate(); System.out.println("ret:" + ret); //5、关闭相关资源 //后创建的先释放,顺序不能错 statement.close(); connection.close(); } }
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import javax.xml.transform.Source; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class Text1 { public static void main(String[] args) throws SQLException { //1,创建实列 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false"); ((MysqlDataSource)dataSource).setUser("root"); ((MysqlDataSource)dataSource).setPassword("180210"); //2,数据库连接 Connection connection = dataSource.getConnection(); //3,构造SQL语句 String sql ="select * from text"; PreparedStatement statement = connection.prepareStatement(sql); //4,执行SQL语句 ResultSet resultSet = statement.executeQuery(); while (resultSet.next()){ int id = resultSet.getInt("id"); String name = resultSet.getString("name"); int class_id = resultSet.getInt("class_id"); System.out.println("id: " + id + "name: " + name + "class_id: " + class_id); } //5,关闭相关资源 resultSet.close(); statement.close(); connection.close(); } }
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Scanner; public class Textur2 { public static void main(String[] args) throws SQLException { Scanner scanner = new Scanner(System.in); System.out.println("请输入要删除学生的姓名:"); String name = scanner.next(); //1,创建实列 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("180210"); //2,数据库连接 Connection connection = dataSource.getConnection(); //3,构造SQL语句 String sql = "delete from text where name = ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1,name); //4,执行SQL int ret = statement.executeUpdate(); if (ret == 1){ System.out.println("删除成功"); }else { System.out.println("删除失败"); } //5,关闭资源 statement.close(); connection.close(); } }
Atas ialah kandungan terperinci Bagaimana untuk menganalisis pengaturcaraan JDBC dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!