首先給出sql驅動包
引入sql包
import java.sql.*;//java
<%@ page import="java.sql.*"%>//jsp
連接mysql數據庫
String DBDRIVER= "com.mysql.jdbc.Driver";//驅動程序
String DBURL="jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8";
//localhost是本機地址,3306端口,db_jsp數據庫名,utf-8編碼
String DBUSER= "root";//登錄名
String DBPASSWORD= "toor";//登陸密碼
Connection conn=null;//Connection對象
try{
Class.forName(DBDRIVER);//將數據庫驅動加載到JVM中,Driver類實例注冊到DriverManager類中
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);//獲取Connection對象
}catch (Exception e){
System.out.println("數據庫連接失敗:" + e.getMessage());
}
1.執行靜態SQL語句,一般用Statement
Statement提供了三種執行方法:
(1)ResultSet executeQuery(String sqlString),執行查詢語句,返回ResultSet;
(2)int executeUpdate(String sqlString),執行更新語句(INSERT,UPDATE,DELETE,SQL DDL[CREATE TABLE,DROP TABLE])等,返回值是本次操作影響的記錄數
(3)execute(String sqlString),可以如(1)(2)處理單個語句,也可以處理返回多個結果的預編譯語句
//執行例子
Statement stmt=null;無錫看男科醫院哪家好 https://yyk.familydoctor.com.cn/20612/
String sql="INSERT INTO x(a,b) VALUES('1','2')";
stmt = conn.createStatement();
stmt.executeUpdate(sql);//int
2.執行動態SQL語句,一般用PreparedStatement
PreparedStatement繼承自Statement,但已經過預編譯,所以執行效率更高,並且PreparedStatement不是完整的sql語句,待定字符用'?'代替,用setXXX方法設置字段
PreparedStatement pstmt = null;//PreparedStatement對象
String sql = "UPDATE person set password=? WHERE id=?";//'?'動態設置
pstmt = conn.prepareStatement(sql);//預編譯sql語句
pstmt.setString(1,"hello");//第一個動態字段是String類型
pstmt.setInt(2,123);//第二個動態字段是int類型
pstmt.executeUpdate();//執行語句
3.ResultSet接口提供訪問結果集的方法
ResultSet rs=stmt.executeQuery("SELECT * FROM per");//假設per數據庫有id和name字段
while(rs.next()){
String id=rs.getString("id");
String id=rs.getString("name");
System.out.println(id+" "+name);
}