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("
添加成功!");
}else{
System.out.println("
添加失败!");
}
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();
}