java的jdbc连接数据库_java中jdbc连接 数据库代码

JDBC(Java Database Connectivity)是一种可以执行SQL的Java API,通过它可以用一种API操作不同的数据库.

#JDBC驱动:不同数据库间,标准的SQL语句可以移植,而数据库实际通信协议及某些数据库特征不可移植,因此,JDBC和数据库之间须还有一层,用于将JDBC调用映射成特定的数据库调用,此特殊层就是JDBC驱动程序.

常见的JDBC驱动有四种:

》JDBC-ODBC桥,是最早实现的JDBC驱动程序,目的为了快速推广JDBC,非多线程,能力有限,此驱动程序将JDBC API映射成ODBC API

》直接将JDBC API映射成数据库特定的客户端API,这种驱动程序包含特定数据库的本地代码,可用于特定数据库的客户端

》支持三层结构的JDBC访问方式,主要用于Applet阶段,通过Applet访问数据库

》纯java的,直接与数据库实例交互,智能型的,知道数据库使用的底层协议,是目前最流行的JDBC驱动

Java JDBC连接数据库代码展示:

 代码如下复制代码

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;

public class JDBConnection {

public Connection conn = null; // 声明Connection对象的实例

public Statement stmt = null; // 声明Statement对象的实例

public ResultSet rs = null; // 声明ResultSet对象的实例

//定义保存数据库驱动的变量

private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM";

private static String dbUser = "sa";

private static String dbPwd = "sa";

public JDBConnection(String propertyFileName) {// 带属性文件名的构造方法

Properties prop = new Properties();// 属性集合对象

InputStream is = null;

try {

is = JDBConnection.class.getClassLoader().getResourceAsStream(

propertyFileName);// 属性文件输入流

// is = new FileInputStream("src/" propertyFileName);

prop.load(is);// 将属性文件流装载到Properties对象中

is.close();// 关闭流

dbClassName = prop.getProperty("dbClassName");

dbUrl = prop.getProperty("dbUrl");

dbUser = prop.getProperty("dbUser");

dbPwd = prop.getProperty("dbPwd");

} catch (Exception e) {

System.out.println("属性文件  " propertyFileName " 打开失败!");

}

try {

Class.forName(dbClassName);// 1.注册驱动

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

public JDBConnection() {// 默认的不带参数的构造函数

try {

Class.forName(dbClassName);// 1.注册驱动

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

public static Connection getConnection() {

Connection conn = null;

try {

// Class.forName(dbClassName);// 1.注册驱动

//2.建立与数据库的链接

conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);

} catch (Exception ee) {

ee.printStackTrace();

}

if (conn == null) {

System.err.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.

\r\n\r\n链接类型:"

dbClassName

"\r\n链接位置:"

dbUrl

"\r\n用户/密码"

dbUser "/" dbPwd);

}

return conn;

}

/*

* 功能:执行查询语句

*/

public ResultSet executeQuery(String sql) {

try { // 捕捉异常

// 调用getConnection()方法构造Connection对象的一个实例conn

conn = getConnection();

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,//3.创建语句

ResultSet.CONCUR_READ_ONLY);

rs = stmt.executeQuery(sql);//4.执行查询

} catch (SQLException ex) {

System.err.println(ex.getMessage()); // 输出异常信息

}

return rs; // 返回结果集对象 5.结果处理

}

/*

* 功能:执行更新操作

*/

public int executeUpdate(String sql) {

int result = 0; // 定义保存返回值的变量

try { // 捕捉异常

// 调用getConnection()方法构造Connection对象的一个实例conn

conn = getConnection();

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

result = stmt.executeUpdate(sql); // 执行更新操作

} catch (SQLException ex) {

result = 0; // 将保存返回值的变量赋值为0

}

return result; // 返回保存返回值的变量

}

/*

* 功能:关闭数据库的连接

*/

public void close() {//6.释放资源

try { // 捕捉异常

try {

if (rs != null) { // 当ResultSet对象的实例rs不为空时

rs.close(); // 关闭ResultSet对象

}

} finally {

try {

if (stmt != null) { // 当Statement对象的实例stmt不为空时

stmt.close(); // 关闭Statement对象

}

} finally {

if (conn != null) { // 当Connection对象的实例conn不为空时

conn.close(); // 关闭Connection对象

}

}

}

} catch (Exception e) {

e.printStackTrace(System.err); // 输出异常信息

}

}

}

大家需要注意的一些属性文件:

dbClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver

dbClassName2=com.mysql.jdbc.Driver

dbPwd=sa

dbPwd2=root

dbUrl=jdbc\:microsoft\:sqlserver\://localhost\:1433;DatabaseName\=DB_ATM

dbUrl2=jdbc\:mysql\://localhost\:3306/db_atm

dbUser=sa

dbUser2=root

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值