Java 第27章 JDBC
?
?? JDBC 模版
? JDBC 的工作原理
?? JDBC API
???? 提供者:Sun公司
?? 內容:供程序員調用的接口與類,集成在java.sql 和javax.sql 包中,如:
???? DriverManager 類
???? Connection 接口
???? PreparedStatement 接口
???? ResultSet 接口
??? DriverManager
????? 提供者:Sun公司
???? 作用:管理各種不同的JDBC 驅動
???? JDBC 驅動
??? 提供者:數據庫廠商
????? 作用:負責連接各種不同的數據庫
? java 應用程序
??? JDBC API
?? JDBC Driver Manager
???? JDBC 驅動 --->sql server ? JDBC 驅動 ----> oracle
?? JDBC API
?JDBC API? 主要功能:與數據庫建立連接、執行SQL 語句、處理結果
?? 1、DriverManager
?? 2、Connection
?? 3、Statement
?? 4、ResultSet? ---> 4個步驟 !
DriverManager :依據數據庫的不同,管理JDBC驅動
Connection :負責連接數據庫并擔任傳送數據的任務?
PreparedStatement:由 Connection 產生、負責執行SQL語句
ResultSet:負責保存Statement執行后所產生的查詢結果
?
try {
????? class.forName( JDBC 驅動類);
???????? 1、加載JDBC 驅動
? Class. forName("com.mysql.jdbc.Driver");
?? 2、與數據庫建立連接
?connection con=DriverManager.getConnection(URL,數據庫用戶名,密碼);
? //URL 用來標識數據庫
?PreparedStatement pstmt=con.PreparedStatement("查詢sql語句");
?ResultSet rs=pstmt.executeQuery();
? //執行SQL語句,并得到返回結果
?
?? while (rs.next()){
??? int x=rs.getint("a");
??? String s=rs.getString("b");
??? float f=rs.getFloat("c");
????? // 處理放回結果
}
? rs.close();
? pstmt.close();
? con.close(); //關閉連接
?? //釋放資源
???
?
}
package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Test1 {
?? ?
?? ?/**
?? ? * @param args
?? ? */
?? ?public static void main(String[] args) {
?? ??? ?Connection conn=null;
?? ??? ?PreparedStatement pstmt=null;
?? ??? ?ResultSet rst=null;
?? ??? ?
?? ??? try {
?? ??? ???? //1、加載驅動
?? ??? ??? Class.forName("com.mysql.jdbc.Driver");
?? ??? ???? //2、建立連接
?? ??? ? conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/nyschool?CharacterEncoding=UTF-8","root","root");
?? ??? ? //System.out.println("建立連接成功!!");
?? ??? ? //3、創建 prepareStatement 接口并編譯 sql語句
?? ??? ? //pstmt=conn.prepareStatement("select * from student");
?? ??? ? //執行刪除
?? ??? ? Scanner input=new Scanner(System.in);
?? ??? ? //System.out.print("請輸入要刪除的學生學號:");
?? ??? ? //int stuNo=input.nextInt();
?? ??? ? //兩種方法:
?? ??? ? //方法1:String sql="DELETE? FROM student WHERE stuNo="+stuNo;
???????? //方法2:String sql="DELETE? FROM student WHERE stuNo=7";
?? ??? ?
?? ??? ? //執行添加
?? ??? ? System.out.print("請輸入添加的學員的編號:");
?? ??? ?? int stuNo=input.nextInt();
?? ??? ?? System.out.print("請輸入添加學員的性別:");
?? ??? ?? String name=input.next();
?? ??? ?? System.out.print("請輸入添加的地址:");
?? ??? ?? String phone=input.next();
?? ??? ?? //
?? ??? ? String sql="INSERT INTO student VALUES (?,'a2323','qq',?,1,?,'江西南昌',SYSDATE(),'qq.com')";
?? ??? ? pstmt=conn.prepareStatement(sql); //預編譯方式
?? ??? ?? //給占位符賦值
?? ??? ? pstmt.setInt(1, stuNo);
?? ??? ? pstmt.setString(2, name);
?? ??? ? pstmt.setString(3, phone);
?? ??? ? System.out.print("sql:"+sql);
?? ??? ? //4、執行SQL語句,并得到返回結果
?? ??? ? //rst=pstmt.executeQuery(); //執行查詢
?? ??? ? int num=pstmt.executeUpdate(); //執行增刪改
?? ??? ?? //5、處理返回結果
?? ??? ?? if(num>0){
?? ??? ??? ?? System.out.println("\n添加成功!");
?? ??? ?? }else{
?? ??? ??? ?? System.out.println("\n添加失敗!");
?? ??? ?? }
?? ??? ?
?? ??? ??? ?while (rs.next()){
??? int x=rs.getint("a");
??? String s=rs.getString("b");
??? float f=rs.getFloat("c");
????? // 處理放回結果
?? ??? ??? ?
?? ??? ?} catch (ClassNotFoundException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?}catch (SQLException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?
?? ??? ?}
轉載于:https://www.cnblogs.com/hanxiaowen/p/5601808.html
總結
以上是生活随笔為你收集整理的Java 第27章 JDBC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图形用户界面
- 下一篇: C语言程序设计做题笔记之C语言基础知识(