1.基本結構:
package com.atguigu.servlets;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;public class JDBCemo {public static void main(String[] args) throws Exception{String url = "jdbc:mysql:///mysql";String username = "root";String password = "123456";Connection conn = DriverManager.getConnection(url, username, password);String sql = "update account set money = 2000 where id = 1";Statement stmt = conn.createStatement();int count = stmt.executeUpdate(sql);System.out.println(count);stmt.close();conn.close();} }
2.詳細api解釋:
①DriverManager(驅動管理類)作用:注冊驅動? 獲取數據庫連接
②Connectiong作用:獲取執行sql的對象:createStatement()? prepareStatement(sql)
③Statement作用:執行sql語句? ?int executeUpdate(sql)執行DML(數據操作語句:數據進行操作)、DDL(數據定義語句:操作數據庫對象的結構)? ? 返回影響的行數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ResultSet executeQuery(sql)執行DQL語句(數據查詢語句:進行數據的查詢) 返回結果集
④ResultSet作用:封裝了DQL查詢的結果
ResultSet stmt.executeQuery(sql)
ResultSet中定義的方法:
?
boolean next():向前移動一行,判斷當前行是否為有效行,true為有效, false為無效
xxx getXxx(參數)獲取數據
參數:int 列的編號? ?String:列的名稱
package com.atguigu.servlets;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class JDBCemo {public static void main(String[] args) throws Exception{String url = "jdbc:mysql:///mysql";String username = "root";String password = "123456";Connection conn = DriverManager.getConnection(url, username, password);String sql = "select * from account";Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);while (rs.next()){int id = rs.getInt(1);String name = rs.getString(2);double money = rs.getDouble(3);System.out.println(id);System.out.println(name);System.out.println(money);}stmt.close();conn.close();} }
⑤PreparedStatement作用:預編譯sql語句并執行
優點:預編譯sql,性能更好;防止sql注入;
想要打開預編譯功能,需要在連接的url后加入一串代碼
String url = "jdbc:mysql:///mysql&userServerPreStmts=true";
package com.atguigu.servlets;import java.sql.*;public class JDBCemo {public static void main(String[] args) throws Exception{String url = "jdbc:mysql:///mysql";String username = "root";String password = "123456";Connection conn = DriverManager.getConnection(url, username, password);String sql = "select * from user where name = ? and password = ?";PreparedStatement pstmt = conn.prepareStatement(sql);String inname = "wangwu";int inps = 123456;pstmt.setString(1, inname);pstmt.setInt(2, inps);pstmt.executeQuery();pstmt.close();conn.close();} }
獲取對象:
(1)注冊驅動
Class.forName(("com.mysql.jdbc.Driver"));
mqsql5之后的驅動包就可以省略注冊驅動的步驟
(2)獲取連接對象
Connection conn = DriverManager.getConnection(url, username, password);
其中,url的語法:
jdbc:mysql://ip地址(域名:localhost)/數據庫名稱
實例: String url = "jdbc:mysql://localhost/mysql";
細節:如果連接的是本機mysql數據庫,端口號為3306,則可以簡寫
String url = "jdbc:mysql:///mysql";