1.什么是JDBC
JDBC是接口 是規范,本身sun公司沒有實現 需要各大數據庫廠商實現
最原生的持久化技術 其他的框架都是都jdbc進行封裝(增強拓展);
要去連接數據庫 就需要導入相應數據庫對jdbc實現的jar包
CRUD(增刪改查)下面看java代碼
第一步:導包,我用的是MySQL,所有導MySQL的jdbc實現jar包,其他的數據庫請找其他的數據庫jar包
public class JdbcDom{ /** * 建表 * @throws Exception */ @Test public void jianBiao() throws Exception { //賈:加載JDBC驅動(用反射的方式加載Driver(驅動)類) Class.forName("com.mysql.jdbc.Driver"); //聯:連接數據庫(通過驅動管理器獲取數據庫連接("數據庫地址","數據庫賬號","數據庫秘密")) Connection connection = DriverManager.getConnection("jdbc:mysql:///2019_9_9","root","root"); //欲:獲得語句對象, // 上下語句是有關聯的,只有獲取了數據庫連接對象才能拿到語句對象; // 獲取語句對象,才能將sql語句執行到數據庫 Statement cs = connection.createStatement(); //執:執行sql語句(cs.執行數據更新(CREATE TABLE 表名 (字段名1 數據類型(數據長度) primary key not null AUTO_INCREMENT,字段名2 數據類型(數據長度),....))) //primary key:設為主鍵 //not null:不為空 //AUTO_INCREMENT:自增 cs.executeUpdate("CREATE TABLE tabeName2 (ID int primary key not null AUTO_INCREMENT,name varchar(10),age int)"); //事:事務關閉 cs.close();//關閉語句連接 connection.close();//關閉數據庫連接 } /** * 刪除指定id的數據 * @throws Exception */ @Test public void removeValue() throws Exception{ //賈 Class.forName("com.mysql.jdbc.Driver"); //聯 Connection connection = DriverManager.getConnection("jdbc:mysql:///2019_9_9","root","root"); //欲 Statement cs = connection.createStatement(); //執 cs.executeUpdate("DELETE FROM tabename2 WHERE id=1"); System.out.println("刪除完成"); //事 cs.close(); connection.close(); } /** * 添加數據 * @throws Exception */ @Test public void addValue() throws Exception{ //賈 Class.forName("com.mysql.jdbc.Driver"); //聯 Connection connection = DriverManager.getConnection("jdbc:mysql:///2019_9_9","root","root"); //欲 Statement cs = connection.createStatement(); //執 cs.executeUpdate("INSERT INTO tabename2 VALUES (null,'我去',20)"); //事 cs.close(); connection.close(); } /** * 根據id修改數據 * @throws Exception */ @Test public void setValue() throws Exception{ //賈 Class.forName("com.mysql.jdbc.Driver"); //聯 Connection connection = DriverManager.getConnection("jdbc:mysql:///2019_9_9","root","root"); //欲 Statement cs = connection.createStatement(); //執 cs.executeUpdate("UPDATE tabename2 SET name='C',age=3 WHERE id=3"); //事 cs.close(); connection.close(); } /** * 通過ID查詢數據 * @throws Exception * */ @Test public void lookValue() throws Exception { //賈 Class.forName("com.mysql.jdbc.Driver"); //聯 Connection connection = DriverManager.getConnection("jdbc:mysql:///2019_9_9","root","root"); //欲 Statement cs = connection.createStatement(); //執 ResultSet e = cs.executeQuery("SELECT * FROM tabeName2 WHERE id=1"); //要打印數據;判斷e.next()不能少。 if(e.next()){ System.out.println(e.getInt("id")+e.getString("name")+e.getInt("age")); }else{ System.out.println("沒有"); } //事 cs.close(); connection.close(); }
/**
*查詢所有數據
*
*/
@Test public void lookAllValue() throws Exception{ //賈 Class.forName("com.mysql.jdbc.Driver"); //聯 Connection connection = DriverManager.getConnection("jdbc:mysql:///2019_9_9","root","root"); //欲 Statement cs = connection.createStatement(); //執 ResultSet executeQuery = cs.executeQuery("SELECT * FROM tabename2"); while (executeQuery.next()) { System.out.println(executeQuery.getInt("id")+"__"+executeQuery.getString("name")+"__"+executeQuery.getInt("age")); } //事 cs.close(); connection.close(); } }
雖然代碼臃腫,但我能理解
