day_32Java JDBC

本文介绍了Java中使用JDBC连接数据库的方法,包括基本概念、连接步骤及常见连接类型。通过示例展示了如何配置Oracle数据库环境及加载驱动程序。


  • 博客分类: 

还未好好整理....


在已沟通有的Java函数库中,有一组专门处理数据库连接的API:

    JDBC(Java DataBase Connective)。

 本节重点讲解来自Java的数据精华---JDBC。

 熟练地使用这个数组API能使我们同数据库的沟通更加密切。

 

本节要点:

        掌握Java数据库连接的基本概念

        掌握Java数据库的连接方法

        熟悉Java数据库连接的相关方法

        了解批处理的相关概念

        了解事务处理的相关概念

         熟悉MySQL数据库的使用

伦理片 http://www.dotdy.com/

 

一、数据库连接的基本概念

 

      JDBC(Java DataBase Connective),即Java数据库连接,是一组专门负责连接并操作数据库的标准。

      JDBC的出现,给使用Java的程序设计师提供了单一的数据访问方式,同时也使得程序设计师利用这组API,

能有效地访问各种形式的数据,包括关系型数据库、表格到一半的文本文件。

    另一方面,在整个JDBC中大量提供的实际上是接口,通过接口,JDBC规范了不同数据来源的相同访问方式,

并针对各个不同的数据库供应商,凡是想要使用Java进行数据库的开发,则肯定要对JDBC标准有所支持。

 

 

JDBC作用:

      1.完成数据库的连接创建

      2.传送sql命令给数据库,完成数据库操作及数据表

      3.接受和处理数据库所执行的结果。

 

JDBC在使用中常见的有以下3类:

 

1.JDBC--ODBC桥连接

 

        本套连接时SUN在JDK的开发包中提供的最标准的一套JDBC操作类库。

要将JDBC与数据库之间进行有效地连接访问,中间要经过一个ODBC的连接,但这意味着整体的 性能将会降低,

当接触的项目很大或者是用户很多的时候,维护ODBC所需要的工作量庞大而复杂,需要在JDBC于ODBC之间做数据之间的传递与转换,

容易造成性能的丢失或遗漏。

 

      所以在开发中绝不会去使用JDBC--ODBC的连接方式的。

      但ODBC连接简单而易学,在ODBC--JDBC,并且有些公司在用户计算机上都设置有ODBC连接,所以不需要再做此类设置。

 

2.JDBC连接

 

       使用各个数据库提供商给定的数据库驱动程序,完成JDBC的开发,这个时候需要在classpath中配置数据库的驱动程序。

此种数据连接方式在性能上比JDBC--ODBC桥连接要好很多。

 

         Java是利用本地的函数库与数据库驱动程序的函数库沟通,在效率上能够大大提升。

但同样,在进行数据库的连接时,用户必须掌握有JDBC的驱动程序以及数据库驱动程序的函数库,而且不同数据库拥有多个不同的驱动程序。

在进行数据库维护时,工作量是很大的。

 

3.JDBC网络连接

 

        此种连接方式主要使用网络连接数据库,这就要求驱动程序必须有一个中间层服务器(middleware server)。

        用户与数据库沟通时会通过此中间层服务器与数据库连接。

        而且这种连接方式只需要同中间层服务器做出有效连接,便可以连接上数据库,所以在更新维护时会大大地减少工作量。

 

 

二、使用数据库的准备工作

  JDBC的准备工作非常重要,首先要完成一般的数据库安装工作,先安装oracle。

 

  2.1已完成-->详情见oracle10g 安装与配置的使用

 

[提前配置好oracle的数据库环境, 不管是服务器, 还是客户端.]

 

   2.2数据库连接驱动程序设置

 

   接下来完成对数据库连接的驱动程序的设置。

   不同的数据库供应商拥不同数据库的驱动程序。

   对于oracle这种大型数据库软件,都会提供java环境下的数据库驱动程序。

   提供给java的驱动程序包jdbc,比如在:E:\oracle\product\10.2.0\db_1\jdbc\lib下的classes12.jar就是我们需要的驱动程序。

 

   如果现在是直接使用命令行方式进行开发的话,则需要在属性中增加classpath。

   将这个路径加入到用户变量classpath下:

                E:\oracle\product\10.2.0\db_1\jdbc\lib\classes12.jar

 

    而如果使用myeclipse的话,则直接在项目的属性中增加需要的类库文件即可。

    在java buildpath-->libraries-->add external jars-->加入

 

三、数据库表的准备

   1.完成了对于Oracle数据库的安装,并且为了能够说清JDBC的基本操作,应使用一下数据库表完成操作。

 

    2.在myeclipse中新建一个名称为JDBCproject1.0的包,接下来完成编写数据库的创建脚本

 

   3.打开Oracle数据库的监听服务和项目服务“OracleJobSchedulerORCL”;默认是打开的   

   启动oracle方法: cmd--->services.msc

                  启动OracleOraDb10g_home1TNSListener   和  OracleServiceORCL

 

    4.在SQLPLUS中执行sql

     

      CREATE SEQUENCE perseq;

      CREATE TABLE person(

      pid NUMBER PRIMARY KEY NOT NULL,

     name VARCHAR2(50) NOT NULL,

     age NUMBER NOT NULL,

     birthday DATE NOT NULL,

     salary NUMBER(10,2) NOT NULL

     );


四、连接数据库的步骤

 

    在进行JDBC操作的时候,应按照以下的步骤完成

           4.1 加载数据库驱动程序,加载的时候需要将驱动程序配置到classpath之中。

                classpath是在设置数据库驱动时的一个变量。

          4.2连接数据库,可通过Connecttion接口和DriverManager类完成。

                 具有操作连接数据库和控制数据源的作用。

          4.3 操作数据库,主要是通过Statement、PreparedStatement、ResultSet等3个接口完成。

          4.4关闭数据库。在实际开发中数据库资源非常有限,操作完成之后必须关闭,否则会造成数据的泄露或丢失,为用户或者开发人员造成不可挽       回的损失。

影音先锋电影 http://www.iskdy.com/

五、数据库连接的详细步骤

Java代码   收藏代码
  1. CREATE SEQUENCE perseq;  
  2. CREATE TABLE person(  
  3.     pid NUMBER PRIMARY KEY NOT NULL,  
  4.     name VARCHAR2(50) NOT NULL,  
  5.     age NUMBER NOT NULL,  
  6.     birthday DATE NOT NULL,  
  7.     salary NUMBER(10,2) NOT NULL  
  8. );  

 

代码案例:

Connectjdbc 代码   收藏代码
  1. package day32;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.SQLException;  
  6.   
  7. public class ConnectJDBC {  
  8.     public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";  
  9.     public static final String DBURL = "jdbc:oracle:thin:@192.168.100.107:1521:orcl";  
  10.     public static final String DBUSER = "scott";  
  11.     public static final String DBPASS = "tiger";  
  12.       
  13.     public static void main(String[] args) throws SQLException, ClassNotFoundException {  
  14.         Connection conn = null;  
  15.         Class.forName(DBDRIVER);  
  16.         conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);  
  17.         System.out.println(conn);  
  18.         conn.close();  
  19.     }  
  20. }  

 

【语音分离】基于平均谐波结构建模的无监督单声道音乐声源分离(Matlab代码实现)内容概要:本文介绍了基于平均谐波结构建模的无监督单声道音乐声源分离方法,提供了相应的Matlab代码实现。该方法通过对音乐信号中的谐波结构进行建模,利用音源间的频率特征差异,实现对混合音频中不同乐器或人声成分的有效分离。整个过程无需标注数据,属于无监督学习范畴,适用于单通道录音场景下的语音与音乐分离任务。文中强调了算法的可复现性,附带完整的仿真资源链接,便于读者学习与验证。; 适合人群:具备一定信号处理基础和Matlab编程能力的高校学生、科研人员及从事音频处理、语音识别等相关领域的工程师;尤其适合希望深入理解声源分离原理进行算法仿真实践的研究者。; 使用场景及目标:①用于音乐音频中人声与伴奏的分离,或不同乐器之间的分离;②支持无监督条件下的语音处理研究,推动盲源分离技术的发展;③作为学术论文复现、课程项目开发或科研原型验证的技术参考。; 阅读建议:建议读者结合提供的Matlab代码与网盘资料同步运行调试,重点关注谐波建模与频谱分解的实现细节,同时可扩展学习盲源分离中的其他方法如独立成分分析(ICA)或非负矩阵分解(NMF),以加深对音频信号分离机制的理解。
内容概要:本文系统介绍了新能源汽车领域智能底盘技术的发展背景、演进历程、核心技术架构及创新形态。文章指出智能底盘作为智能汽车的核心执行层,通过线控化(X-By-Wire)和域控化实现驱动、制动、转向、悬架的精准主动控制,支撑高阶智能驾驶落地。技术发展历经机械、机电混合到智能三个阶段,当前以线控转向、线控制动、域控制器等为核心,辅以传感器、车规级芯片、功能安全等配套技术。文中还重点探讨了“智能滑板底盘”这一创新形态,强调其高度集成化、模块化优势及其在成本、灵活性、空间利用等方面的潜力。最后通过“2025智能底盘先锋计划”的实车测试案例,展示了智能底盘在真实场景中的安全与性能表现,推动技术从研发走向市场验证。; 适合人群:汽车电子工程师、智能汽车研发人员、新能源汽车领域技术人员及对智能底盘技术感兴趣的从业者;具备一定汽车工程或控制系统基础知识的专业人士。; 使用场景及目标:①深入了解智能底盘的技术演进路径与系统架构;②掌握线控技术、域控制器、滑板底盘等关键技术原理与应用场景;③为智能汽车底盘研发、系统集成与技术创新提供理论支持与实践参考。; 阅读建议:建议结合实际车型和技术标准进行延伸学习,关注政策导向与行业测试动态,注重理论与实车验证相结合,全面理解智能底盘从技术构想到商业化落地的全过程。
【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)内容概要:本文介绍了名为《【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)》的技术资源,重点围绕电力系统中连锁故障的传播路径展开研究,提出了一种N-k多阶段双层优化模型,结合故障场景筛选方法,用于提升电力系统在复杂故障条件下的安全性与鲁棒性。该模型通过Matlab代码实现,具备较强的工程应用价值和学术参考意义,适用于电力系统风险评估、脆弱性分析及预防控制策略设计等场景。文中还列举了大量相关的科研技术支持方向,涵盖智能优化算法、机器学习、路径规划、信号处理、电力系统管理等多个领域,展示了广泛的仿真与复现能力。; 适合人群:具备电力系统、自动化、电气工程等相关背景,熟悉Matlab编程,有一定科研基础的研究生、高校教师及工程技术人员。; 使用场景及目标:①用于电力系统连锁故障建模与风险评估研究;②支撑高水平论文(如EI/SCI)的模型复现与算法验证;③为电网安全分析、故障传播防控提供优化决策工具;④结合YALMIP等工具进行数学规划求解,提升科研效率。; 阅读建议:建议读者结合提供的网盘资源,下载完整代码与案例进行实践操作,重点关注双层优化结构与场景筛选逻辑的设计思路,同时可参考文档中提及的其他复现案例拓展研究视野。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值