java如何创建一个jdbc程序详解
|
JDBC简介
我们在没有JDBC之前,使用驱动程序在Java程序与MySQL、Oracle、SQLServer等数据库之间建立连接,驱动程序就是在该课程中将要学到的内容。那么就存在一个问题:在同一个Java程序与数据库之间建立连接时,驱动程序是否是共用的呢?如果一样,很显然就能节省代码量,但是实际上是不一样的。一定要注意是不一样的。那么就存在一个问题:当底层数据库发生改变之后,数据库的驱动程序也会随之发生变化,那么该怎么解决该问题呢?于是JDBC出现了,目的是为了减轻开发人员的工作量,以提高代码的复用。 JDBC API
JDBC结构 1.JDBC API是Java开发工具包(JDK)的组成部份:
2.JDBC驱动程序管理器是JDBC体系结构的支柱,其主要作用是把Java应用程序连接到正确的JDBC驱动程序上。 3.JDBC驱动程序测试工具包为JDBC驱动程序的运行提供一定的可信度,只有通过JDBC驱动程序测试包的驱动程序才被认为是符合JDBC标准的。 4.JDBC-ODBC桥使ODBC驱动程序可被用作JDBC驱动程序。其目标是为方便实现访问某些不常见的DBMS,它的实现为JDBC的快速发展提供了一条途径。 在开始之前,我们先来实现一个简单的JDBC程序 步骤 1,注册驱动;(只需要注册一次) 2,建立连接; 3,创建执行的sql语句; 4,执行语句; 5,处理执行结果; 6,释放资源; 示例
package cn.ccnu;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Statement;
public class Demo1 {
public static void main(String[] args) throws Exception {
test();
}
public static void test() throws Exception {
//1,注册驱动
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// System.getProperty("jdbc.driver","con.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver");//这三种注册方式,推荐使用这种
//2,建立连接
//url格式
//JDBC:子协议:子名称//主机名:端口/数据库名称
String url = "jdbc:mysql://localhost:3306/test";//如果是本机,也可以将localhost:3306省掉
String user = "root";
String password = "123456";
Connection conn = (Connection)DriverManager.getConnection(url,user,password);
//3,创建slq执行语句
Statement st = (Statement) conn.createStatement();
//4,执行语句
ResultSet rs = st.executeQuery("select * from a");
//5,处理执行结果
while (rs.next()) {
System.out.println(rs.getObject(1));
}
//6,关闭连接,释放资源
rs.close();
st.close();
conn.close();
}
}
分析JDBC开发步骤 使用JDBC访问数据库的基本步骤一般如下:
开发第一个JDBC程序
package com.wfu.ch09;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");//里面的名字一定不要写错,这个也是导入的
//forName(String className) 返回与带有给定字符串名的类或接口相关联的 Class 对象。
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/k-user","root","123456");//试图建立到给定数据库 URL 的连接。
Statement stmt=conn.createStatement(); //创建一个 Statement 对象来将 SQL 语句发送到数据库。
// String insertsql="insert into k_user(userno,username,pwd) values('1002','张三','123')";
// int x=stmt.executeUpdate(insertsql); //executeUpdate 返回一个int 型的数据 括号里面是一个字符串数据类型,详细内容看文档
//(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数
//(2) 对于不返回任何内容的 SQL 语句,返回 0
// if(x>0){
// System.out.println("插入成功!");
// }
// String updateSql="update k_user set pwd='123456' where userno='1002'";
// int x=stmt.executeUpdate(updateSql);
// if(x>0){
// System.out.println("更新成功!");
// }
String deleteSql="delete from k_user where userno='1002'";
int x=stmt.executeUpdate(deleteSql);
if(x>0){
System.out.println("删除成功!");
}
String sql="select * from k_user";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
for(int i=1;i<=13;i++){
System.out.print(rs.getString(i)+" ");
}
System.out.println();
}
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.wfu.ch09;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test2 {
public static void main(String[] args) {
try {
// step1:加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// step2:建立数据库的连接
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/stock11","123");
// // step3:创建Statement对象
Statement st = conn.createStatement();
//step4:执行SQL语句
String selectSql="select * from k_user";
//step5:处理结果集
ResultSet rs=st.executeQuery(selectSql);
while(rs.next()){
for(int i=1;i<=13;i++){
System.out.print(rs.getString(i)+" ");
}
System.out.println();
// String x=rs.getString("hometown");
// System.out.println(x);
}
//step6:关闭创建的对象
//关闭结果集
rs.close();
//关闭statement对象
st.close();
//关闭连接
conn.close();
// step4: 执行SQL语句
//// String insertSql = "insert into k_user(userno,pwd) values('1001','tom','123')";
// int x = st.executeUpdate(insertSql);
// if(x>0){
// System.out.println("插入成功!");
// }
// String updateSql="update k_user set pwd='123456' where userno='1001'";
// int x=st.executeUpdate(updateSql);
// if(x>0){
// System.out.println("更新成功!");
// }
// String deleteSql="delete from k_user where userno='1001'";
// int x=st.executeUpdate(deleteSql);
// if(x>0){
// System.out.println("删除成功!");
// }
//
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
各个语句说明 加载JDBC驱动程序 加载驱动程序的方法:
Class.forName("DriverName")
其中DriverName是要加载的JDBC驱动程序名称。驱动程序名称根据数据库厂商提供的JDBC驱动程序的种类来确定。 加载MySQL数据库驱动程序的方法为:
Class.forName("com.mysql.jdbc.Driver");
加载Oracle数据库驱动程序的方法为: 创建数据库连接-1 DriverManager类是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。该类负责加载、注册JDBC驱动程序,管理应用程序和已注册的驱动程序的连接。 DriverManager的常用方法:
使用DriverManager类的getConnection()创建一个数据库连接: Connection conn = DriverManager.getConnection(String url,String password); 创建数据库连接-2 URL提供了一种标识数据库位置的方法,可以使相应的驱动程序能够识别该数据库并与它建立连接。 JDBC URL由三个部分组成: jdbc : < subprotocol> : < subname> 可以根据子协议的改变而变化。 是子协议,指数据库连接的方式。 创建数据库连接-3 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
