MySQL Java的JDBC编程
生活随笔
收集整理的這篇文章主要介紹了
MySQL Java的JDBC编程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
🤞目錄🤞
💖1. Java的數據庫編程:JDBC
💖2. JDBC工作原理
💖3.?JDBC使用
🏀1. Java的數據庫編程:JDBC
JDBC,即Java Database Connectivity,java數據庫連接。是一種用于執行SQL語句的Java API,它是 Java中的數據庫連接規范。這個API由 java.sql.*,javax.sql.* 包中的一些類和接口組成,它為Java 開發人員操作數據庫提供了一個標準的API,可以為多種關系數據庫提供統一訪問。🏀2. JDBC工作原理
JDBC 為多種關系數據庫提供了統一訪問方式,作為特定廠商數據庫訪問API的一種高級抽象,它主要包含一些通用的接口類。🏀3.?JDBC使用
準備數據庫驅動包,并添加到項目的依賴中:
使用java IDEA 新建一個Maven項目
?打開并配置 pom.xml?
🎈建立數據庫連接: MysqlDataSource db = new MysqlDataSource();// 1. 告訴客戶端,MySQL服務器在哪// 通過告訴 地址 + 端口db.setServerName("localhost");db.setPort(3306);// 2. 認證(名稱 + 密碼)db.setUser("root");db.setPassword("123456");// 設置默認庫(要操作的庫名)db.setDatabaseName("0331_library");// 3. 其他配置db.setUseSSL(false);db.setCharacterEncoding("utf-8");db.setServerTimezone("Asia/Shanghai");🎈為了方便我們新建一個DBUtil類,直接調用即可
public class DBUtil {private static final DataSource dataSource;static {MysqlDataSource db = new MysqlDataSource();db.setServerName("localhost");db.setPort(3306);db.setUser("root");db.setPassword("123456");db.setDatabaseName("0331_library");db.setUseSSL(false);db.setCharacterEncoding("utf-8");db.setServerTimezone("Asia/Shanghai");dataSource = db;}public static Connection connection() throws SQLException {return dataSource.getConnection();} } 🎈使用演示: //已設默認庫,寫執行語句// a. 查詢String sql = "select * from books";// 4. 通過網絡和MySQL服務器建立連接try (Connection c = DBUTil.connection()) {// 5. 發送給MySQL服務器我們的語句try (PreparedStatement ps = c.prepareStatement(sql)) {// 6. executeQuery 執行查詢// 7. ResultSet接收(需要輸出)try (ResultSet rs = ps.executeQuery()) {// 8. 遍歷、檢索、打印集中的數據while (rs.next()) {String rid = rs.getString(1);String name = rs.getString(2);String stock = rs.getString(3);String total = rs.getString(4);System.out.printf("%s\t%s\t%s\t%s\n",rid,name,stock,total);}}}}🎈對該庫具體的增刪改查完整代碼如下:
import java.sql.*; import java.util.Scanner;public class Demo1 {public static void main(String[] args) throws SQLException {Scanner scanner = new Scanner(System.in);try(Connection c = DBUtil.connection()){// 1.增String sql1 = "insert into readers (name) values (?)";String newReaderName = scanner.next();//Statement.RETURN_GENERATED_KEYS 得到自增值操作try(PreparedStatement ps = c.prepareStatement(sql1,Statement.RETURN_GENERATED_KEYS)){ps.setString(1,newReaderName);ps.executeUpdate();try(ResultSet rs = ps.getGeneratedKeys()){rs.next();int rid = rs.getInt(1);System.out.println("新插入了一個reader:" + rid +"\t"+newReaderName);}}// 2.刪String sql2 = "delete from readers where name = '劉昕怡'";try(PreparedStatement ps = c.prepareStatement(sql2)){ps.executeUpdate();}// 3.改String sql3 = "update readers set name = '劉昕怡' where name = '陳浩民'";try (PreparedStatement ps = c.prepareStatement(sql3)){ps.executeUpdate();}// 4.查String sql4 = "select * from books where 1 = 1";try(PreparedStatement ps = c.prepareStatement(sql4)){try(ResultSet rs = ps.executeQuery()){while (rs.next()){int rid = rs.getInt(1);String name = rs.getString(2);int stock = rs.getInt(3);int total = rs.getInt(4);System.out.printf("%d\t%s\t%d\t%d\n",rid,name,stock,total);}}}}} }🎈此代碼中涉及兩個表:
readers表:
?books表:
🎈MYSQL建表等操作請見上節:《 MySQL 增刪改查(基礎 + 詳解)》
總結
以上是生活随笔為你收集整理的MySQL Java的JDBC编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CHM文件打不开或者提示的解决办法
- 下一篇: linux cmake编译源码,linu