您好,欢迎访问三七文档
JDBC数据库编程1、JDBC简介在现在的所有开发之中都是基于数据库的开发应用,那么如果要进行数据库的开发,则必须存在相应的操作服务支持,而JDBC就是一种服务:JDBC(Java数据库连接),是一套操作标准。JDBC的核心组成就是接口,不同的数据库生产商要根据自己的数据库按照指定的接口标准实现数据库的连接以及操作。而JDBC按照分类主要分为以下三种操作形式:·JDBC-ODBC:使用JDBC技术连接ODBC,通过ODBC进行数据库的操作;|-操作流程:程序JDBCODBC数据库;中间要经过一个ODBC,没人这么做;|-好处:所有的技术都是最新的,并且由Java默认提供驱动程序;·JDBC:不同的数据库生产商根据指定的标准进行数据库驱动的开发,并且使用;|-操作流程:程序JDBC数据库;需要单独配置驱动程序;·JDBC网络连接:根据网络协议进行服务器的连接操作,开发之中都使用此方式;进行数据库开发的系统包是java.sql包,在这个包之中主要是一个类四个接口:DriverManager类、Connection、Statement、PreparedStatement、ResultSet。2、连接数据库本次使用的是Oracle数据库进行开发,而如果要使用oracle,则必须保证两个服务打开:监听、实例服务。但是如果要进行Oracle的数据库连接还需要得到Oracle的驱动,那么这一驱动程序在Oracle安装之后会自动提供。路径:D:\oracle\product\10.1.0\db_1\jdbc\lib\classes12.jar,此时可以在CLASSPATH之中进行此路径的注册,但是这个CLASSPATH在Eclipse之中没有用处,所以还需要在Eclipse里面配置jar包。而如果要想取得数据库连接,还需要以下四个信息才可以完成:·数据库驱动程序:oracle.jdbc.driver.OracleDriver;·数据库连接地址:现在操作的数据库是MLDN,连接端口是:1521|-连接地址:jdbc:oracle:thin:@localhost:1521:MLDN;·数据库的用户名:scott;·数据库的密码:tiger;以上的这一信息一定要记下来,不同的数据库连接只在此处不同,但是至少得写一个出来。准备完成了所有的信息之后,下面就可以按照如下的步骤进行数据库的操作:·加载数据库驱动程序;·通过DriverManager类取得连接;|-方法:publicstaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQLException·进行数据表的CRUD操作;·关闭数据库;资源操作必须关闭每一个DriverManager取得的连接都通过Connection接口表示,所以在整个的JDBC,每次通过DriverManager取得的每一个Connection都表示一个新的数据库连接。范例:连接数据库packagecn.mldn.test;importjava.sql.Connection;importjava.sql.DriverManager;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:MLDN;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(String[]args)throwsException{//省事Connectionconn=null;//表示一个数据库连接对象Class.forName(DBDRIVER);//加载数据库驱动程序//CTRL+SHIFT+X,格式化代码:CTRL+Fconn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);System.out.println(conn);//输出连接对象conn.close();}}解决方法:1、输入regedit.exe,进入到注册表;2、找到项:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraDb10g_home2TNSListener;3、观察ImagePath,表示的是可执行程序的路径;D:\oracle\product\10.1.0\db_1\BIN\TNSLSNR3、数据库的操作(重点)当取得了数据库的连接对象之后,那么下面就可以通过Connection接口对象取得Statement接口对象。·方法:publicStatementcreateStatement()throwsSQLException;用户可以使用Statement接口中的方法进行数据库的查询及更新处理操作;·更新操作:publicintexecuteUpdate(Stringsql)throwsSQLException;返回更新的行数·查询操作:publicResultSetexecuteQuery(Stringsql)throwsSQLException;在执行操作之前首先建立一张新的数据表,数据库创建脚本如下:DROPTABLEmemberPURGE;DROPSEQUENCEmyseq;CREATESEQUENCEmyseq;CREATETABLEmember(midNUMBERPRIMARYKEY,nameVARCHAR2(200)NOTNULL,ageNUMBER,birthdayDATE,noteCLOB);其中mid的内容由序列控制增长,序列的增长使用nextval伪列。3.1、进行数据的更新操作数据的更新操作主要是分为三种:1、增加操作:INSERTINTO表名称(字段,…)VALUES(值,…)在编写增加操作的时候数据要注意:·VARCHAR2、CLOB:使用“'”声明;·NUMBER:直接编写数字;·DATE:SYSDATE、TO_DATE()、按照指定的字符串规格编写。packagecn.mldn.test;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:MLDN;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(String[]args)throwsException{//省事Connectionconn=null;//表示一个数据库连接对象Statementstmt=null;//表示数据库操作对象Class.forName(DBDRIVER);//加载数据库驱动程序conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();//创建数据库操作Stringsql=INSERTINTOmember(mid,name,age,birthday,note)+VALUES(myseq.nextval,'张三',20,+TO_DATE('1891-09-12','yyyy-mm--dd'),'岁数很长的一个老人');intlen=stmt.executeUpdate(sql);//执行更新System.out.println(更新行数:+len);stmt.close();conn.close();}}2、删除操作:DELETEFROM表名称WHERE删除条件(s)如果不写删除条件表示全部删除。packagecn.mldn.test;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:MLDN;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(String[]args)throwsException{//省事Connectionconn=null;//表示一个数据库连接对象Statementstmt=null;//表示数据库操作对象Class.forName(DBDRIVER);//加载数据库驱动程序conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();//创建数据库操作Stringsql=DELETEFROMmemberWHEREmidIN(4,14);intlen=stmt.executeUpdate(sql);//执行更新System.out.println(更新行数:+len);stmt.close();conn.close();}}3、修改操作:UPDATE表名称SET字段=值,…WHERE修改条件(s)packagecn.mldn.test;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:MLDN;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(String[]args)throwsException{//省事Connectionconn=null;//表示一个数据库连接对象Statementstmt=null;//表示数据库操作对象Class.forName(DBDRIVER);//加载数据库驱动程序conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);stmt=conn.createStatement();//创建数据库操作Stringsql=UPDATEmemberSETname='李四'WHEREmidIN(1,3,5,7,9,10);intlen=stmt.executeUpdate(sql);//执行更新System.out.println(更新行数:+len);stmt.close();conn.close();}}所有的操作发现只是在更改了SQL语句,其他的
本文标题:JDBC数据库编程
链接地址:https://www.777doc.com/doc-2882060 .html