JDBC(Java Database Connectivity:Java访问数据库的解决方案)定义一套标准接口,即访问数据库的通用API,不同数据库厂商根据各自数据的特点去实现这些接口。
JDBC是Java应用程序和数据库之间的通信桥梁,是Java应用程序访问数据库的通道。
1.JDBC标准主要有一株接口组成,其好处是统一了各种数据库的访问方式;
2.JDBC接口的实现类称为数据库驱动,由数据库厂商提供,使用JDBC必须要导入接口;
第1部分 JDBC工作过程:
1)加载驱动,建立连接;
2) 创建语句对象;
3) 执行SQL语句;
4) 处理结果集;
5) 关闭连接;
第2部分 JDBC具体使用步骤:
1) 导入JDBC驱动jar;
使用Maven可以便于导入jar包和移植
2) 注册JDBC驱动;
参数:“驱动程序类名”
Class.forName(“驱动程序类名”);
3) 获得Connection对象
需要三个参数:URL,username,password
连接数据库
4) 创建Statement(语句)对象
conn.createStatement()方法创建对象
用于执行SQL语句
execute(ddl) 执行任何语句,常用语执行DDL
executeUpdate(DML) 执行DML语句 ,如insert,update,delete
executeQuery(DQL) 执行DQL语句,如select
5) 处理SQL执行结果:
execute(DDL) 如果没有异常则成功;
executeUpdate(DML) 返回数字,表示更新“行”数量,抛出异常则失败;
executeQuery(DQL) 返回ResultSet(结果集)对象,代表2维查询结果;
使用for遍历处理,如果查询失败抛出异常!
6) 关闭数据连接,最后一定要关闭!
conn.close();
第3部分 小案例
3.1 创建一个表
注意:用String写SQL语句时换行时要注意加空格!
package kwin.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/** * jdbd使用 * @author KwinWei QQ:885251358 * */public class JdbcDemo { public static void main(String[] args) { try { /*连接到数据库 */ Class.forName("oracle.jdbc.OracleDriver"); //System.out.println("OK!"); /*不同的oracle的IP地址不同 * 主机名,端口号,SID * url,username,password * * jdbc:oracle:thin 写错会找不到驱动 * 后半写错 连接不上数据库 * * sqldeverment 连接右键可查看 * */ String url = "jdbc:oracle:thin:@localhost:1521:xe"; String username = "system"; //用户名密码错误会拒绝连接 String password = "root"; //getConnection() 查找并尝试连接到数据库,如果不成功则会出现异常 Connection conn = DriverManager.getConnection(url,username,password); //输出conn引用对象的实际类名 //证明:驱动程序提供了Connection接口的实现类 System.out.println(conn.getClass()); /*创建“语句”对象,执行SQL * Statement接口 * Statement stmt = conn.createStatement(); * boolean flag = stmt.execute(sql); 什么语句都可以执行,一般执行DDL语句,; * ResultSet rs = stmt.execute.Query(sql);执行dql语句,selecte,产生结果集; * int flag = stmt.executeUpdate(sql);执行DML语句,delete,update * * 这三方法不要乱用,其实互换使用可以,但不建议;按建议使用方式来; * */ Statement st = conn.createStatement(); String ddl1 = "CREATE TABLE kwinDemo( " + " id NUMBER(4) ," + " name VARCHAR2(40)," + " gender VARCHAR2(1)" + ")"; boolean b = st.execute(ddl1); //返回结果:true表示有结果集;false没有结果集;创建失败抛异常; System.out.println(b); conn.close(); //最后一定要关闭连接 }catch(Exception e) { e.printStackTrace(); } }}
3.2 执行DML语句,往表里插入数据
package kwin.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/** * 执行DML语句 * @author KwinWei QQ:885251358 * */public class JdbcDemo2 { public static void main(String[] args) { try{ /*注册驱动*/ Class.forName("oracle.jdbc.OracleDriver"); //连接到数据库 String url = "jdbc:oracle:thin:@localhost:1521:xe"; String username = "system"; String password = "root"; Connection conn = DriverManager.getConnection(url,username,password); //System.out.println(conn.getClass()); //创建Statement Statement st = conn.createStatement(); //执行DML,插入可以去SQL Dvelopment里查看 String dml = "insert into kwinDemo" + "(id,name) values(001,'Tom')"; int n = st.executeUpdate(dml); System.out.println(n); //关闭连接 conn.close(); }catch(Exception e) { e.printStackTrace(); } }}