本文目錄一覽:
- 1、java連接資料庫mysql代碼及簡單訪問資料庫
- 2、怎樣連接mysql資料庫java代碼
- 3、 number of parameters, which is 0).’ title=’mysql預處理的Java代碼,報錯 Parameter index out of range (1 > number of parameters, which is 0).’>mysql預處理的Java代碼,報錯 Parameter index out of range (1 > number of parameters, which is 0).
java連接資料庫mysql代碼及簡單訪問資料庫
import java.sql.*;
public class DataBasePractice {
public static void main(String[] args) {
//聲明Connection對象
Connection con;
//驅動程序名
String driver = “com.mysql.jdbc.Driver”;
//URL指向要訪問的資料庫名mydata
String url = “jdbc:mysql://localhost:3306/mydata”;
//MySQL配置時的用戶名
String user = “root”;
//MySQL配置時的密碼
String password = “root”;
//遍歷查詢結果集
try {
//載入驅動程序
Class.forName(driver);
//1.getConnection()方法,連接MySQL資料庫!!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println(“Succeeded connecting to the Database!”);
//2.創建statement類對象,用來執行SQL語句!!
Statement statement = con.createStatement();
//要執行的SQL語句
String sql = “select * from student”;
//3.ResultSet類,用來存放獲取的結果集!!
ResultSet rs = statement.executeQuery(sql);
System.out.println(“—————–“);
System.out.println(“執行結果如下所示:”);
System.out.println(“—————–“);
System.out.println(” 學號” + “\t” + ” 姓名”);
System.out.println(“—————–“);
String name = null;
String id = null;
while(rs.next()){
//獲取stuname這列數據
name = rs.getString(“stuname”);
//獲取stuid這列數據
id = rs.getString(“stuid”);
//首先使用ISO-8859-1字符集將name解碼為位元組序列並將結果存儲新的位元組數組中。
//然後使用GB2312字符集解碼指定的位元組數組。
name = new String(name.getBytes(“ISO-8859-1″),”gb2312”);
//輸出結果
System.out.println(id + “\t” + name);
}
rs.close();
con.close();
} catch(ClassNotFoundException e) {
//資料庫驅動類異常處理
System.out.println(“Sorry,can`t find the Driver!”);
e.printStackTrace();
} catch(SQLException e) {
//資料庫連接失敗異常處理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println(“資料庫數據成功獲取!!”);
}
}
}
在上面while代碼段後面添加以下代碼段:
String name = null;
String id = null;
while(rs.next()){
//獲取stuname這列數據
name = rs.getString(“stuname”);
//獲取stuid這列數據
id = rs.getString(“stuid”);
//首先使用ISO-8859-1字符集將name解碼為位元組序列並將結果存儲新的位元組數組中。
//然後使用GB2312字符集解碼指定的位元組數組。
name = new String(name.getBytes(“ISO-8859-1″),”gb2312”);
//輸出結果
System.out.println(id + “\t” + name);
}
PreparedStatement psql;
ResultSet res;
//預處理添加數據,其中有兩個參數–「?」
psql = con.prepareStatement(“insert into student values(?,?)”);
psql.setInt(1, 8); //設置參數1,創建id為5的數據
psql.setString(2, “xiaogang”); //設置參數2,name 為小明
psql.executeUpdate(); //執行更新
//預處理更新(修改)數據
psql = con.prepareStatement(“update student set stuname = ? where stuid = ?”);
psql.setString(1,”xiaowang”); //設置參數1,將name改為王五
psql.setInt(2,10); //設置參數2,將id為2的數據做修改
psql.executeUpdate();
//預處理刪除數據
psql = con.prepareStatement(“delete from student where stuid = ?”);
psql.setInt(1, 5);
psql.executeUpdate();
//查詢修改數據後student表中的數據
psql = con.prepareStatement(“select*from student”);
res = psql.executeQuery(); //執行預處理sql語句
System.out.println(“執行增加、修改、刪除後的數據”);
while(res.next()){
name = res.getString(“stuname”);
id = res.getString(“stuid”);
name = new String(name.getBytes(“ISO-8859-1″),”gb2312”);
System.out.println(id + “\t” + name);
}
res.close();
psql.close();
怎樣連接mysql資料庫java代碼
首先你要導包
JDBC連接資料庫
•創建一個以JDBC連接資料庫的程序,包含7個步驟:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入MySql的驅動類
Class.forName(“com.mysql.jdbc.Driver”) ;
}catch(ClassNotFoundException e){
System.out.println(“找不到驅動程序類 ,載入驅動失敗!”);
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例註冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始 子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:
(MySql的連接URL)
jdbc:mysql: //localhost:3306/test?useUnicode=truecharacterEncoding=gbk ;
useUnicode=true:
表示使用Unicode字符集。如果characterEncoding設置為 gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象, 該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url , String username , String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和 密碼來獲得。
例如: //連接MySql資料庫,用戶名和密碼都是root
String url = “jdbc:mysql://localhost:3306/test” ;
String username = “root” ;
String password = “root” ;
try{
Connection con = DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println(“資料庫連接失敗!”);
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ; PreparedStatement pstmt = con.prepareStatement(sql) ; CallableStatement cstmt = con.prepareCall(“{CALL demoSp(? , ?)}”) ;
5、執行SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate 和execute
1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句 ,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或 DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的 語句。 具體實現的代碼:
ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ; int rows = stmt.executeUpdate(“INSERT INTO …”) ; boolean flag = stmt.execute(String sql) ;
6、處理結果 兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
• ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 行中數據的訪問。
• 使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString(“name”) ;
String pass = rs.getString(1) ; // 此方法比較高效
}
(列是從左到右編號的,並且從列1開始)
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲 明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
number of parameters, which is 0).’>mysql預處理的Java代碼,報錯 Parameter index out of range (1 > number of parameters, which is 0).
這個問號是不是打成中文的了 你看看是不是,希望能幫到你!
原創文章,作者:FBBI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146260.html