MySQL五步走JDBC編程全解讀
一、數據庫編程的必備條件
編程語言,如Java,C、C++、Python等 數據庫,如Oracle,MySQL,SQL Server等 數據庫驅動包:不同的數據庫,對應不同的編程語言提供瞭不同的數據庫驅動包,如:MySQL提 供瞭Java的驅動包mysql-connector-java,需要基於Java操作MySQL即需要該驅動包。同樣的, 要基於Java操作Oracle數據庫則需要Oracle的數據庫驅動包ojdbc。
二、Java的數據庫編程:JDBC
JDBC,即Java Database Connectivity,java數據庫連接。是一種用於執行SQL語句的Java API,它是 Java中的數據庫連接規范。這個API由 java.sql.*,javax.sql.* 包中的一些類和接口組成,它為Java 開發人員操作數據庫提供瞭一個標準的API,可以為多種關系數據庫提供統一訪問。
三、JDBC工作原理
DBC 為多種關系數據庫提供瞭統一訪問方式,作為特定廠商數據庫訪問API的一種高級抽象,它主要包 含一些通用的接口類。
JDBC訪問數據庫層次結構:
四、開發環境搭建
首先在電腦服務當中查看自己MySQL的版本,然後進入maven倉庫
因為我自己的版本是5.0之後的,所以我選擇5.1.47,大版本要一致
下載jar即可,記住,jar包不能解壓縮
接下來就在idea自己在根目錄下創建文件夾,然後導入jar包
沒有報錯一直OK下去就沒有啥問題,說明導入成功
五、MySQL中的JDBC編程
1、五步流程
建立數據庫連接
// 加載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://服務器地址:端口/數據庫名?參數名=參數值
創建操作命令(Statement)
Statement statement = connection.createStatement();
執行SQL語句
ResultSet resultSet= statement.executeQuery( "select id, sn, name, qq_mail, classes_id from student");
處理結果集
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)); }
釋放資源(關閉結果集,命令,連接)
//關閉結果集 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(); } }
2、添加信息
首先創建一個數據庫並且創建一個表
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(); } }
3、查詢信息
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(); } }
4、刪除信息
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(); } }
5、修改信息
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 Text4 { public static void main(String[] args) throws SQLException { //修改信息 Scanner scanner = new Scanner(System.in); System.out.println("請輸入學生的id:"); int id = scanner.nextInt(); 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 = "update text set name = ? where id = ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1,name); statement.setInt(2,id); //4,執行SQL int set = statement.executeUpdate(); if (set == 1){ System.out.println("修改成功"); }else { System.out.println("修改失敗"); } //5,關閉資源 statement.close(); connection.close(); } }
到此這篇關於MySQL五步走JDBC編程全解讀的文章就介紹到這瞭,更多相關MySQL JDBC編程內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MySQL數據庫 JDBC 編程(Java 連接 MySQL)
- MySQL詳解進行JDBC編程與增刪改查方法
- MySQL數據庫JDBC編程詳解流程
- 實例介紹SQL註入以及如何解決
- JDBC編程的詳細步驟