使用JDBC操作数据库(Oracle,Mysql,SQLSERVER)

来源:互联网 发布:linux循环 编辑:程序博客网 时间:2024/06/06 01:17
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

JDBC API由核心Java API和扩展Java API两部分组成。核心API位于java.sql包中,包括建立DBMS连接和访问DBMS数据所需的基本Java数据对象;扩展API位于javax.sql包中,是J2EE的一部分,包括一些JDBC高级特性(如数据库连接池管理),以及与JNDI进行交互的Java数据对象。
Java程序使用JDBC API来访问JDBC驱动程序,JDBC驱动程序再把这些访问消息翻译成能被DBMS理解和处理的底层消息,并完成交互
Java.sql包常用的接口/类如下:
DriverManager :依据数据库的不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由 Connection 产生、负责执行SQL语句
ResultSet:负责保存Statement执行后所产生的查询结果

使用JDBC操作Mysql数据库(连接远程数据库和本地唯独URL地址发生变化)
1. 启动MySQL数据库服务
2. 下载MySQL数据库驱动下载地址:https://dev.mysql.com/downloads/file/?id=468319
将解压的xxxx.jar包拷贝到工程lib目录下,bulid path一下如下图所示:


3. 动态加载数据库驱动
String driver = “com.mysql.jdbc.Driver”;//驱动类名
Class.forName(driver);//反射方式获取
4. 获得连接对象
String url = "jdbc:mysql://localhost:3306/mytest";
//jdbc:mysql://为固定写法 主机名:端口号/要连接的数据库名称
String user = “root”;//数据库用户名
String password =”svse”;//密码
Connection conn = DriverManager.getConnection(url,user,password);
5. 使用Connection创建PreparedStatement(预处理方式)语句对象
String sql =” insert into book (字段1,字段2,字段3)values(?,?,?)”;//要执行的sql语句
PreparedStatement ps = conn.prepareStatement(sql);
6. 使用PreparedStatement对象执行SQL语句
ResultSet rs = ps.executeQuery();
7. 对结果集ResultSet进行操作使用next()和getX(),setX()等方法
8. 回收资源

使用JDBC操作Oracle数据库和SQLServer基本步骤同Mysql一样唯独 设置url 和 driver不同

下面是与Oracle链接的实例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


/*******
 * jdbc操作数据库
 * 
 * @author czh
 *
 */
public class DBHelper {
// url a database url of the form jdbc:subprotocol:subname(url
// =“协议名+IP地址(域名):端口+数据库名称(oracle下为服务命名)")
private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";// (连接oracle数据库的url)
// private static final String URL1 = "jdbc:mysql://localhost:3306/lodging";
// //(连接Mysql数据库的url)
// Driver代表:驱动包.驱动类名
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";// (oracle驱动类名)
// private static final String DRIVER2 =
// "com.mysql.jdbc.Driver";//(mysql驱动类名)


private static final String UserName = "scott"; // (用户名)
private static final String PASSWORD = "tiger";// (密码)


/********
* 获得链接方法

* @return Connection 对象
* @throws SQLException
*/
public static Connection getConn() throws SQLException {
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, UserName, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}


// 关闭资源
public static void closeResource(PreparedStatement ps, ResultSet rs, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

0 0