-------------------------------《JDBC》--------------------------------
JDBC Java数据库连接
JDBC是一个规范,遵循JDBC接口规范,各个数据库厂家各自实现自己的驱动程序
JDBC驱动程序都应实现的重要接口:
DriverManager 驱动管理
Connection 数据库连接
Statement 语句执行接口 Statement---sql语句.
CallableStatement---存储过程、函数.
ResultSet 结果集
ODBC 开放数据库连接
驱动包放入classpath环境变量中。
//Java连接Oracle
"jdbc:oracle:thin:@192.168.2.23:1521:simple","simple","simple"
//Java连接SQLServer
jdbc:microsofr:sqlserver://localhost:1433;DatabaseName=dbName
---------------------------------------Java连接Oracle------------------------------------------------------
1、加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
2、得到连接
Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@192.168.2.23:1521:simple","simple","simple");
3、创建CallableStatement
CallableStatement cs = ct.prepareCall("{call pro_input(?,?)}");
4、给?赋值
cs.setString(1,"simple");
cs.setInt(2, 20);
5、执行
cs.execute();
ct.commit();
6、关闭
//cs.close();
ct.close();
完整例子:
public class JDBCTest
{
//1.加载驱动
static boolean LoadDriver()
{
String driverClass="oracle.jdbc.driver.OracleDriver";
try
{
//根据类名 搜索驱动程序
Class.forName(driverClass);
return true;
}
catch(ClassNotFoundException e)
{
System.out.println(e);
}
return false;
}
//2.数据库连接
static Connection OpenDataBase(String user,String pwd)
{
//定义链接字符串
String url="jdbc:oracle:thin:@192.168.2.23:1521:simple";
try
{
return DriverManager.getConnection(url,user,pwd);
}
catch(SQLException e)
{
System.out.println("建立数据库连接失败,"+e);
}
return null;
}
//3.执行语句
static void testSql(Connection con,String sql)
{
try
{
Statement stmt = con.createStatement();
int rows = stmt.executeUpdate(sql);
System.out.println("执行语句,返回:"+rows);
} catch (SQLException e)
{
System.out.println("执行语句失败,"+e);
}
}
//数据库事物控制
//开始事务
static void BeginTranaction(Connection con)
{
try
{
con.setAutoCommit(false);//设置jdbc事务为手动模式
}
catch(SQLException e)
{
System.out.println("事务初始化失败,"+e);
}
}
//提交
static void Commit(Connection con)
{
try
{
con.commit();
}
catch(SQLException e)
{
System.out.println("事务提交失败,"+e);
}
try
{
con.setAutoCommit(true);//还原为自动单条事务模式
}
catch(SQLException e){}
}
//回滚
static void Rollback(Connection con)
{
try
{
con.rollback();
}
catch(SQLException e)
{
System.out.println("事务回滚失败,"+e);
}
try
{
con.setAutoCommit(true);//还原为自动单条事务模式
}
catch(SQLException e){}
}
//查询
static ResultSet testQuerry(Connection con,String sql)
{
try
{
Statement stmt = con.createStatement();
return stmt.executeQuery(sql);
}
catch(SQLException e)
{
System.out.println("执行查询发生异常:"+e);
}
return null;
}
//执行预处理的语句对象
static PreparedStatement getPrapareStmt(Connection con,String sql)
{
try
{
return con.prepareStatement(sql);
} catch (SQLException e)
{
System.out.println("创建预处理对象发生异常,"+e);
}
return null;
}
//调用存储过程
static int WriteSyslos(Connection con,int tid,String content)
{
try
{
String sql = "{call prc_writelog(?,?,?,?)}";
//String sql = "{?=call prc_writelog(?,?,?,?)}"; //调用函数
CallableStatement stmt = con.prepareCall(sql);
//参数赋值
stmt.setInt(1, tid);
stmt.setString(2, content);
//注册出参类型
stmt.registerOutParameter(3, Types.INTEGER);
stmt.registerOutParameter(4, Types.VARCHAR);
//执行
stmt.execute();
//取出出参的数据
int iRet = stmt.getInt(3);
String sRet = stmt.getString(4);
System.out.printf("iRet:%d,sRet:%s \r\n",iRet,sRet);
return iRet;
}
catch (SQLException e)
{
System.out.println("调用存储过程失败,"+e);
}
return 0;
}
public static void main(String[] args)
{
if(LoadDriver())
{
Connection dbCon = OpenDataBase("simple","simple");
if(dbCon!=null)
{
System.out.println("连接成功!");
}
//写日志
WriteSyslos(dbCon, 10, "记录java日志,通过存储过程!");
//开始事务
BeginTranaction(dbCon);
//insert
for(int i = 0;i<3;i++)
{
testSql(dbCon, "insert into syslogs values(seq_syslogs.nextval,10,sysdate,'java客户端程序日志',user)");
}
//结束事务
Commit(dbCon);
//Rollback(dbCon);
//执行批量任务
try
{
PreparedStatement pstmt = getPrapareStmt(dbCon, "insert into syslogs values(seq_syslogs.nextval,?,sysdate,?,user)");
BeginTranaction(dbCon);//手动事务
for(int i=0;i<300;i++)
{
pstmt.setInt(1, 10);
pstmt.setString(2, "No."+i+"批量插入任务");
pstmt.addBatch();//添加到批处理任务中
}
int[] rows = pstmt.executeBatch();
System.out.print("批处理任务返回:("+pstmt.SUCCESS_NO_INFO+"表示执行成功, "+pstmt.EXECUTE_FAILED+"表示执行失败!)[");
for(int val:rows)
{
System.out.print(val+",");
}
System.out.println("]");
Commit(dbCon);
pstmt.close();
} catch (SQLException e1)
{
e1.printStackTrace();
}
//update
//testSql(dbCon, "update syslogs set content='java客户端更新日志' where logid=90");
//testSql(dbCon, "delete from syslogs where logid=90");
//查询
try
{
ResultSet rs = testQuerry(dbCon, "select log.logid,type.title,log.dtm,log.content from syslogs log,logtypes type where log.tid=type.tid order by log.dtm desc ");
if(rs!=null)
{
while(rs.next())//移到下一条记录
{
//int logid_1 = rs.getInt(1);
int logid_2 = rs.getInt("logid");
System.out.printf("日志ID :%d \r\n",logid_2);
String title = rs.getString("title");
Date dtm = rs.getDate("dtm");
java.util.Date dtm_2 = new java.util.Date(dtm.getTime());
System.out.printf("类型:%s 记录时间:%s 内容:%s \r\n",title,dtm_2.toLocaleString(),rs.getString("content"));
}
}
rs.close();//释放结果集
} catch (SQLException e){}
//关闭连接
try
{
if(dbCon!=null)
dbCon.close();
}
catch(SQLException e){}
}
}
}
分享到:
相关推荐
Tongweb5是一款基于Java的Web应用服务器,它支持配置JDBC连接池来管理数据库连接。本文将详细介绍如何在Tongweb5中配置JDBC连接池,以及Web应用如何通过JNDI(Java Naming and Directory Interface)查找并使用这些...
在IT行业中,数据库连接管理是应用系统性能优化的关键环节之一,而JDBC连接池就是解决这一问题的有效工具。本文将详细讲解JDBC连接池的工作原理、配置方法以及如何通过优化来提升连接速度。 JDBC(Java Database ...
Oracle客户端JDBC连接测试工具是一种实用程序,它允许开发者和系统管理员通过Java Database Connectivity (JDBC)接口测试与Oracle数据库的连接。这个工具通常包含在Oracle客户端安装中,或者可以作为一个独立的JAR...
综上所述,解决JDBC连接Oracle远程数据库时的中文乱码问题,需要从多个层面进行检查和配置,包括应用程序的配置文件、JDBC连接参数、数据库服务器设置以及开发环境等。通过细心排查和合理配置,可以有效地避免这类...
下面将详细介绍如何使用JDBC连接Hive和Impala。 1. **JDBC连接Hive** Hive提供了一个名为Hive JDBC的驱动,它允许外部应用程序通过JDBC协议与Hive服务通信。要建立JDBC连接到Hive,你需要以下步骤: - **获取...
### JDBC连接数据库各种数据库参数详解 #### 一、Oracle8/8i/9i数据库(thin模式) 在Java中通过JDBC访问Oracle数据库时,通常采用thin驱动方式。thin驱动是一种纯Java驱动,无需依赖任何非Java代码即可完成与...
总结来说,"Jdbc连接postgresql数据库(源码+jar包)"资源提供了使用Java JDBC连接到PostgreSQL数据库的实例,涵盖了从加载驱动到执行SQL的基本流程,对于学习和实践非常有帮助。通过学习和理解这些代码,开发者能够...
标题中的“jdbc连接不同数据库方法”指的是使用Java Database Connectivity (JDBC) API来与不同的数据库进行交互的方法。JDBC是Java平台中用于访问数据库的标准Java API,它允许开发者执行SQL语句并处理结果。 在...
标题 "PB 通过JDBC连接SQLite" 描述了一个使用PowerBuilder (PB) 通过Java Database Connectivity (JDBC) 驱动程序与SQLite数据库进行交互的场景。在本例中,使用的特定JDBC驱动是`sqlite-jdbc-3.23.1.jar`。这个...
Java使用Jdbc连接Oracle执行简单查询操作示例 Java使用Jdbc连接Oracle执行简单查询操作,是指使用Java语言通过Jdbc(Java Database Connectivity)连接Oracle数据库并执行简单查询操作的过程。本文将通过实例形式...
本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC驱动注册**: 在Java中,连接MySQL数据库首先需要加载并注册JDBC驱动。MySQL的JDBC驱动类是`...
本资源提供的“jdbc连接access数据库的驱动jar包”正是为了这个目的。 标题中的“jdbc连接access数据库的驱动jar包”指的是用于Java应用程序通过JDBC接口连接到Access数据库所需的特定驱动程序库,通常是一个Java ...
JDBC 连接字符串示例 本文将详细介绍 JDBC 连接字符串的示例,包括 Oracle、MySQL、SQL Server 等多种数据库的连接字符串。 JDBC 连接字符串简介 JDBC(Java Database Connectivity,Java 数据库连接)是一种 ...
JDBC连接Oracle测试 package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DB { private static Connection conn; private static ...
MySQL JDBC 连接器,全称...总之,MySQL JDBC连接器是Java开发者不可或缺的工具,它使得我们可以方便地在Java应用中集成MySQL数据库,实现各种复杂的数据库操作,同时也需要我们关注其版本特性、性能优化以及安全实践。
标题"jdbc连接cache的demo及jar包,自己备份.rar"指出这是一个关于使用JDBC(Java Database Connectivity)连接Cache数据库的示例项目,其中包含了必要的jar包,并且用户已经将其作为个人备份保存。这里的“Cache”...
**JDBC连接实现简单学生管理系统** 在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一种标准接口。本项目“JDBC连接实现简单学生管理系统”旨在通过JDBC技术,创建一个能够连接...
JDBC连接数据库工具类 JDBC 连接数据库 ORACLE SQLSERVER MYSQL ORACLE 已测 OK 欢迎大家反馈 我的微博是: http://weibo.com/namenode
Java通过JDBC连接Impala是将Java应用程序与大数据分析平台Impala进行交互的一种常见方法。在Java编程中,JDBC(Java Database Connectivity)是用于访问数据库的标准API,它允许Java程序与各种数据库进行通信,包括...