JAVA 訪問數據庫的技術:
Jdbc是一種Java連接數據庫技術(Java database connectity), 它是 Java 提供的一些接口,這些接口大部分是數據庫廠商提供的(jar包),我們要做的,是連接數據庫以後,如何使用Java代碼從數據庫中存取數據!
Jdbc開發步驟
1. 引包:
2. 開啓MySQL服務,
如何沒有開啓會報錯:
3.準備好數據庫
4.進入開發階段
4.1註冊數據庫驅動
//MySQL驅動固定寫法!注意是”MySQL數據庫的驅動”
Class.forName(“com.mysql.cj.jdbc.Driver”);//mysql5.7.22
4.2和數據庫建立連接
連接數據庫必要的參數:
URL: 訪問數據庫的地址:寫法:
jdbc:mysql://數據庫所在Ip地址:數據庫端口/數據庫的名字
name : 要連接的數據庫的賬戶名
password : 要連接數據庫的用戶密碼
//找到本機的數據庫應用,3306是數據庫的默認端口 8080是tomkat的默認端口
String url = “jdbc:mysql://localhost:3306/student?&useSSL=false”;
String name = “root”;//將要連接數據庫的賬戶
String password = “root”;//將要連接數據庫的密碼
Connection connection = DriverManager.getConnection(url,name,password);
4.3獲得執行sql語句的對象
用於執行SQL語句
PreparedStatement接口繼承了Statement,
Statement(固定),和 PreparedStatement(可變參數) 是SQL語句的兩種執行方式
1.在遇到要執行的SQL語句是帶可變參數的時候,就用PreparedStatement對象,應爲PreparedStatement可以用佔位符將SQL語句加入可變參數!:
String sql = “insert into user(sno,name,age)values(?,?,?)”;//定義一個要執行的SQL語句
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,student.getSno());//設置SQL語句的第一個參數
ps.setString(2,student.getName());//設置SQL語句的第二個參數
ps.setInt(3,student.getAge());//設置SQL語句的第三個參數
2.當要執行的SQL語句的是不帶可變參數的時(就是SQL語句不變時!):
String sql = “SELECT * FROM user”;
Statement statement = connection.createStatement();//sql語句的執行對象
ResultSet row = statement.executeQuery(sql);//執行SQL語句
PreparedStatement 和Statement的區別:
PreparedStatement:用戶通過你係統輸入變量時,變量將加入你的SQL語句,這樣就能在不知道你的用戶輸入的情況下,獲取信息
4.4執行SQL語句
兩種語句:
1).不用返回數據庫信息:
增,刪,改
exexuteUpdate() 方法 : 返回一個整形(對數據庫影響的行數)
2).需要返回數據庫信息:
查
exexuteQuery() 方法 : 返回一個結果集對象(Resultest 在數據庫中查到的一條數據)
讀取返回對象集中的數據的方法: (就是集合的迭代器)
Resultest.next()能夠返回給你還有沒有記錄,
getObjeck方法,讀取一條記錄裏面字段所對應的值
4.5處理執行後的結果
調用Dao的方法後返回一個結果給servlet 讓servlet進行處理!:如:
int row = UserDAD.insert(student);
if (row==1){
jsonObject.put(“code”,1);
jsonObject.put(“msg”,”添加成功”);
jsonObject.put(“data”,student);
}else {
jsonObject.put(“code”,2);
jsonObject.put(“msg”,”添加失敗”);
}
4.6 釋放資源
將用到的傳輸有關的對象再傳輸完成後統統釋放! 如:
ps.close();
connection.close();