一、什么是JDBC
Java數(shù)據(jù)庫連接,(Java Database Connectivity,簡稱JDBC)是[Java語言]中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的[應(yīng)用程序接口],提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法
二、簡單操作JDBC
步驟
1、導(dǎo)入數(shù)據(jù)庫驅(qū)動包(mysql、mssql、oracle等)
2、裝載數(shù)據(jù)庫驅(qū)動程序
3、獲取數(shù)據(jù)庫連接
4、獲取可執(zhí)行的數(shù)據(jù)語句對象
5、執(zhí)行語句
6、關(guān)閉連接
/**
* @description JDBC連接數(shù)據(jù)庫
*
* 1、導(dǎo)入數(shù)據(jù)庫驅(qū)動包(mysql、mssql、oracle等)
* 2、裝載數(shù)據(jù)庫驅(qū)動程序
* 3、獲取數(shù)據(jù)庫連接
* 4、獲取可執(zhí)行的數(shù)據(jù)語句對象
* 5、執(zhí)行語句
* 6、關(guān)閉連接
* @version 1.0
* @author mpmanyu.com
* @update 2021年3月25日 下午6:33:59
*
*/
public class JdbcDemo1 {
public static void main(String[] args) {
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
try {
//1裝載數(shù)據(jù)庫驅(qū)動
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2 獲取數(shù)據(jù)庫連接對象
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=shen", "shen", "123");
//3 獲取執(zhí)行sql語句的statement對象
statement = conn.createStatement();
//4執(zhí)行sql語句得到結(jié)果集
rs = statement.executeQuery("select * from userlogin");
//5遍歷結(jié)果集
while(rs.next()) {
System.out.println(rs.getString(1)+"_"+rs.getString(2));
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
/**
* 關(guān)閉資源,關(guān)閉之前要判斷資源是否存在
*/
if(rs !=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(statement!=null) {
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
三、JDBC對象與方法
1、Connection:數(shù)據(jù)庫連接
createStatement() :創(chuàng)建執(zhí)行sql語句的對象
prepareStatement(sql): 創(chuàng)建執(zhí)行sql語句的預(yù)加載對象
prepareCall(sql) :創(chuàng)建執(zhí)行存儲過程的對象
setAutoCommit(boolean autoCommit) :設(shè)置事務(wù)的自動提交
commit():提交事務(wù)
rollback():回滾事務(wù)
2、Statement對象
executeQuery(String sql):查詢
executeUpdate(String sql):增刪改
addBatch(String sql):把多條的sql語句放進(jìn)同一個批處理中(添加批處理)
executeBatch():向數(shù)據(jù)庫發(fā)送一批sql語句執(zhí)行(執(zhí)行批處理)
statement.clearBatch();清空批處理
3、PreparedStatement對象(預(yù)加載,盡量使用此對象,可防注入)
executeQuery():查詢
executeUpdate():增刪改
preparedStatement.addBatch();添加批處理
preparedStatement.executeBatch();執(zhí)行批處理
preparedStatement.clearBatch();清空批處理
setString(1,id):第一個參數(shù)表示第幾個占位符【也就是?號】,第二個參數(shù)表示值是多少
4、ResultSet對象
getObject(String columnName):獲取Object類型數(shù)據(jù)
getString(String columnName) :獲取String類型數(shù)據(jù)
next():游標(biāo)下移
等