JDBC访问数据库步骤详解
对于很多Java初学者来说,JDBC访问数据库是一个复杂的过程,本文为大家详细列举JDBC访问数据库步骤!
操作方法
- 01
加载注册驱动 首先通过数据库厂商网站,获得JDBC驱动文件及驱动的文档说明,驱动文件通是一个jar文件(Java Archive Java归档文件),驱动文档中通常包含了驱动使用的说明和示例程序。 如果在Java程序中需要使用第三方(非JDK内置)的软件包,你必须把软件包添加到程序的classpath(类路径)中。在Eclipse中添加软件包的方法与项目类型有关。 1、 Java Web项目 直接将JDBC驱动的Jar文件复制到项目的web—inf/lib/下即可。 2、 Java Application项目 (1)在Elipse中点击菜单Project>Properties,打开项目属性窗口。 (2)点击Java Build>Libraries,点击Add External JARS按钮,打开JAR窗口。 (3)选择JDBC驱动的jar文件,完成驱动引入,驱动包显示在Project Explor视图中。 JDBC驱动包添加完成后,在程序中注册驱动的方法如下: String driver=”customer jdbc driver classfull name”; Class. forName(driver): Driver参数是JDBC驱动类的完整类名称,可以通过查询JDBC驱动的文档获得,不同数据库驱动的驱动类名称是不一样的。例如Oracle驱动类名称为oracle.jdbc.driver.OracleDriver,JDBC-ODBC桥驱动类名称为:sun.jdbc.odbc.jdbcodbcdriver。 Java.lang.class 类的forname方法可以根据类名初始化类实例,从而实现JDBC驱动类注册。
- 02
建立数据连接 简历数据库连接时通过java.sql.DriverManager类实现的,代码示例 Connection conn=DriverManager.getConnerction(url,user,password); Url:连接数据库的字符串 不同数据库的连接url由一些差异,请查询相应JDBC驱动文档或参见附录。 通常url中包含数据库的ip,端口,库名以及其他参数。例如Mysql数据库的连接url格式为:jdbc:mysql://192.168.1.1:3306/db-customer User:连接数据库的用户名 Password:连接数据库的密码 Connection类别是数据库的具体连接,它的通用方法如下: Statement createstatement():创建一个statement对象用来将SQL语句发送到数据库。 StatementCreatestatement(int resultsettype,Int resultsetconcurrency):创建具有指定查询结果集类型和并发性的statement。 Preparestatement preparestatement(string sql):创建一个preparestatement对象来将参数化的SQL语句发送到数据库。 Callablestatement preparecall(string sql):创建一个callablestatement 对象来调用数据库存储过程。 Void set auto commit(boolean autocommit):设置此链接的事务自动提交模式。 Void commit():提交事务。 Void rollback():回滚事务。 Void close():关闭当前连接。 databaseMetadata getmetadata():获得数据库元数数据信息。 注意:上述方法都会抛出SQLException
- 03
创建 statement 通过connection的createment方法可以创建statement对象: Statement statement=conn.creatstatement(); Statement对象的主要作用是向数据发送SQL语句,它的常用方法如下: Resultset executeQuery(String sql):执行一个查询SQL语句,获得结果集 Int executeUpdate(String sql):执行一个更新SQL语句,获得更新行数 Void close():关闭statement及其打开的结果集 Void setMaxrows(int max):设置返回的查询结果集最大行数 Void addBatch(String sql):向批处理中添加一条SQL Int[]executeBatch():执行处理中的所有SQL,返回影响行数数组r-top-alt:solid windowtext 1px;mso-border-left-alt:solid windowtext 1px; mso-border-alt:solid windowtext 1px;padding:0 7px 0 7px;height:21px'> 获得数据库元数数据信息
- 04
操作Resultset 结果集 使用Statement 的excuteQuery 方法执行SQL查询语句,可以获得返回的结果集 Resuleset rs=Statement,executequery(“select*from userinfo”) Resuleset对象表示数据库查询结果集的数据包,它包含符合SQL查询结果中的所有数据行。对Resultset对象我们通常只进行读取操作,不推荐对resultset进行更新或插入行,更新请使用statement的exeutrupdate方法。 Resultset对象与数据库中的表相似。它也有光标(游标)的概念。默认情况下光标志向Resultset第一数据之前,并且向光标仅能向下移动,如果需要可以滚动游标的结果集,必须在创建statement时使用指定参数。使用resultset的next()方法可以使光标下移一行,正常移动返回true,如果到达记录末尾则返回false。通常使用while(rs.net()){。。。。。。}遍历结果集。更多Java方面知识尽在准信软件培训:training.zhunxin.net 使用rs.getXXXargument) 方法可以取得光标所在行的字段值。 XXX表示数据类型: Getint:以int型返回字段值 Getstring:以java.lang.string 类型返回字段值 Getfloat:以float 类型返回字段值 Getdate:以java.sal.date类型返回字段值 Argument 参数有两类值 使用字段序号(下标从1开始)的形式:intid=rs.getint(1) 使用字段名称:string name=rs.getsting(“username”)
- 05
资源释放 JDBC操作必须进行资源释放,因为JDBC驱动在底层通常是通过网络IO实现SQL命令与数据传输的。Connection、statement、resultset都提供了close方法用于释放资源。 大多数JDBC操作都会抛出SQLException,必须进行异常处理。 try{ try{ }finally{ rs.close(); St.close(); Conn.close(); } }catch(SQLException e) {