代碼塊
```package com.foreknow.jdbcdemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
/**
* JDBC:連接數(shù)據(jù)庫的一種技術(shù) /持久層(DAO)的技術(shù)
* JDBC的API文件:java.sql包
* JDBC訪問數(shù)據(jù)庫的步驟
* 1.加載驅(qū)動程序 每個數(shù)據(jù)庫廠商都會給我們提供它自己的驅(qū)動程序 Class.forName("驅(qū)動程序的名稱")
* 2.獲取連接(Connection接口)
* 3.我們會通過連接(Connection接口)中提供好的方法創(chuàng)建一個對象 Statement(接口),用于將SQL語句發(fā)送給數(shù)據(jù)庫
* ResultSet executeQuery(String sql)
* 執(zhí)行給定的 SQL 語句,該語句返回單個 ResultSet (結(jié)果集)對象(用于保存查詢的結(jié)果)。
* int executeUpdate(String sql)
執(zhí)行給定 SQL 語句,該語句可能為 INSERT、UPDATE 或 DELETE 語句,或者不返回任何內(nèi)容的 SQL 語句(如 SQL DDL 語句)。
(1) 對于 SQL 數(shù)據(jù)操作語言 (DML) 語句,返回行計數(shù) delete insert update 成功返回值就是1
(2) 對于什么都不返回的 SQL 語句,返回 0
* 4.釋放資源(關(guān)閉資源)
* Statement close() Connection close()
* @author ttc
*
*/
public class TestJdbc {
Connection conn;
Statement statement;
ResultSet rs;
//連數(shù)據(jù)庫的方法
public Connection Link() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysqldemo?useUnicode=true&characterEncoding=utf8&useSSL=true", "root", "123456");
return conn;
}
//查詢方法
public ResultSet find(String sql) throws SQLException{
statement=conn.createStatement();
rs=statement.executeQuery(sql);
return rs;
}
//DML的方法
public int Update(String sql) throws SQLException{
statement=conn.createStatement();
int isRight=statement.executeUpdate(sql);
return isRight;
}
//關(guān)閉資源
public void closed() throws SQLException{
if (rs!=null) {
rs.close();
}
if(conn!=null){
conn.close();
}
}
public static void main(String[] args) {
try {
//1.加載驅(qū)動 https://mvnrepository.com
Class.forName("com.mysql.jdbc.Driver");
//2.獲取連接(Connection接口)
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysqldemo?useUnicode=true&characterEncoding=utf8&useSSL=true", "root", "123456");
//jdbc中默認的食物提交方式為自動提交(不用自己commit)
//為TRUE表示自動提交模式;為FALSE表示禁用自動提交模式
conn.setAutoCommit(false);
//3.獲取Statement對象(接口)
Statement statement=conn.createStatement();
int isRight=statement.executeUpdate("insert into dept values(50,'aaa','bbb')");
//提交事物(如果不提交事物,數(shù)據(jù)庫中不會更新)
conn.commit();
System.out.println(isRight);
// ResultSet rs=statement.executeQuery("select * from emp");
// //4.如何讓獲取到結(jié)果集中的數(shù)據(jù)
// //boolean next()將光標從當前位置線下移
// List<Emp> list=new ArrayList<>();
// while (rs.next()) {
// //獲取當前行的每一列的數(shù)據(jù)
// int empno=rs.getInt("empno");
// String ename=rs.getString("ename");
// String mgr=rs.getString("mgr");
// System.out.println(empno+"---"+ename+"---"+mgr);
// //見獲取到的數(shù)據(jù)以EMP對象的方式保存到LIST集合里
// Emp emp=new Emp();
// emp.setEmptno(empno);
// emp.setEname(ename);
// emp.setMgr(mgr);
// list.add(emp);
// }
// for (Emp emp : list) {
// System.out.println(emp.getEmptno()+" "+emp.getEname()+" "+emp.getMgr());
// }
//5.關(guān)閉資源
// rs.close();
statement.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Test代碼塊
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
TestJdbc t=new TestJdbc();
try {
t.Link();
// ResultSet rs=t.find("select * from emp");
// List<Emp> list=new ArrayList<>();
// while (rs.next()) {
// //獲取當前行的每一列的數(shù)據(jù)
// int empno=rs.getInt("empno");
// String ename=rs.getString("ename");
// String mgr=rs.getString("mgr");
// System.out.println(empno+"---"+ename+"---"+mgr);
// //見獲取到的數(shù)據(jù)以EMP對象的方式保存到LIST集合里
// Emp emp=new Emp();
// emp.setEmptno(empno);
// emp.setEname(ename);
// emp.setMgr(mgr);
// list.add(emp);
// }
// for (Emp emp : list) {
// System.out.println(emp.getEmptno()+" "+emp.getEname()+" "+emp.getMgr());
// }
int is=t.Update("insert into dept values(57,'aaa','bbb')");
System.out.println(is);
t.closed();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}