jdbc基礎
一、jdbc簡介和mysql驅動的加載
程序要通過sql語句來自動化操作數據庫,必須要用一個類庫,類庫要提供executesql(“insert into。。。”)等方法
jdbc是java中提供的標準訪問數據庫的接口,訪問不同dbms的底層是不一樣的,jdbc把訪問數據庫的方法進行了統一,訪問mysql、oracle、db2等不同數據庫的用法幾乎一模一樣。
jdbc是規範,被不同的數據庫廠商提供jdbc的實現,稱之爲jdbc驅動。
jdbc的核心類:drivermanager用於管理驅動/獲得連接,connection用於連接dbms,statement用於執行sql語句,resultset用戶獲取執行結果,jdbc相關的核心類都在java.sql中
二、jdbc連接mysql(英文輸入法,下面這裏面有可能有拼音輸入法輸入的內容)
1、將mysql的jdbc驅動mysql-connector-java-***-bin.jar添加到項目的庫中
2、Class.forName("com.mysql.jdbc.Driver")加載mysql的jdbc驅動(大小寫敏感)
3、Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/demo1?seUnicode=true&characterEncoding=UTF-8","root",“root”)獲得和dbms的連接,不要引用錯了mysql驅動jar包中也有一個同名的connection
參數localhost是本機的地址,也可以輸入電腦的ip地址;參數demo1是數據庫的名字,已實際的爲準;後面是編碼。
4、PreparedStatement ps=conn.prepareStatement("inset into T_Persons(name,age,gender) values('mingzi',23,1)");
5、int i=ps.executeUpdate();執行sql語句,返回值爲受影響的行數
package com.rupeng.jdbctest1;
import java.sql.DriverManager;
import java.sql.SQLException;
//import java.sql.DriverManager;
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");//加載JDBC驅動
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("mysql jdbc驅動加載失敗"+e.getMessage());
return;
}
try {
DriverManager.getConnection("jdbc:mysql://localhot/study1?seUnicode=true&characterEncoding=UTF-8", "root", "123456");
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("連接失敗"+e.getMessage());
}
}
}
三、
PreparedStatement ps=conn.prepareStatement(insert into t_persons(name,age,gender)values('zhaozhao',22,1));
int i=ps.executeUpdate();
//媽蛋,mac上面的vbox,又出幺蛾子啦啦啦
package com.rupeng.jdbctest1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
//import java.sql.DriverManager;
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");//加載JDBC驅動,注意大小寫
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("mysql jdbc驅動加載失敗"+e.getMessage());
return;
}
/*Connection con=null;
PreparedStatement stmt=null;
try {
con=DriverManager.getConnection("jdbc:mysql://localhot/study1?seUnicode=true&characterEncoding=UTF-8", "root", "123456");
System.out.println(con.getClass());
// 連接失敗Communications link failure Last packet sent to the server was 0 ms ago.
// con=DriverManager.getConnection("jdbc:mysql://localhot/study1?autoReconnect=true&characterEncoding=UTF-8", "root", "123456");
//報錯Could not create connection to database server. Attempted reconnect 3 times. Giving up.
stmt=con.prepareStatement("insert into_orders (number,price,customersid,typeid) values('k003',200,1,1)");
System.out.println(stmt.getClass());
int i=stmt.executeUpdate();
System.out.println("成功執行"+i+"條信息");
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("連接失敗"+e.getMessage());
}*/
try {
Connection con=DriverManager.getConnection("jdbc:mysql://localhot/study1?seUnicode=true&characterEncoding=UTF-8", "root", "123456");
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("連接失敗"+e.getMessage());
}
}
}