JDBC连接数据库

山抹微云 贡献于2013-06-17

作者 MC SYSTEM  创建于2013-02-02 15:32:00   修改者MC SYSTEM  修改于2013-02-02 17:23:00字数2358

文档摘要: JDBC是一种可以执行SQL语句并可以返回结果的JavaAPI,全称是Java DataBase Connectivity,也是一套面向对象的应用程序接口(API)。JDBC的最大特点是它能够独立于具体的关系数据库。JDBC的优点:JDBC和ODBC十分相似,有利于软件开发人员的理解。JDBC使软件开发人员从复杂的驱动程序编写工作中解脱出来,可以完全专注于业务逻辑的开发。
关键词:

黑马训练营_JDBC连接数据库 -------android培训、java培训、java学习型技术博客、期待与您交流!-------- JDBC是一种可以执行SQL语句并可以返回结果的Java API,全称是 Java DataBase Connectivity,也是一套面向对象的应用程序接口(API)。JDBC的最大特点是它能够独立于具体的关系数据库。JDBC的优点: 1、 JDBC和ODBC十分相似,有利于软件开发人员的理解。 2、 JDBC使软件开发人员从复杂的驱动程序编写工作中解脱出来,可以完全专注于业务逻辑的开发。 3、 JDBC支持多种关系型数据库,使软件的可移植性大大增加。 4、 JDBC的API是面向对象的,软件开发可以将常用的方法进行二次封装,从而提高代码的重用性。 JDBC的缺点: 1、 通过JDBC访问数据时速度将收到一定影响。 2、 虽然JDBC API是面向对象的,但通过JDBC访问数据库依然是面向关系的。 3、 JDBC提供了对不同数据库厂商的支持,将对数据源带来影响。 1、 加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM,者通过java.lang.Class类的静态方法forName(String className)实现。 例子(mysql): try{ Class.forName("com.mysql.jdbc.Driver");//加载驱动 //将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式下,则将执行其所有 SQL 语句,并将这些语句作为单独的事务提交。 //否则,其 SQL 语句将成组地进入通过调用 commit 方法或 rollback 方法终止的事务中。默认情况下,新的连接处于自动提交模式下。 } catch (ClassNotFoundException e) { e.printStackTrace(); } 当加载驱动成功后就把驱动加载到了DriverManager类中了,如果加载失败了,则会抛ClassNotFoundException异常,就是没有找到Driver类。 2、 提供JDBC连接的URL 连接URL定义了连接数据库时的协议、子协议、数据源标识。 协议:在JDBC中总以是jdbc开始 子驱动:是桥接的驱动程序或是数据库管理数据库的名称,例如MySQL就是mysql. 例如: jdbc:mysql://localhost:3306/DatabaseName?useUicode=ture&characterEncoding=utf-8 3、创建数据库连接 在连接数据库的时候可以向java.sql.DriverManager请求并获得Connection对象,该对象 就代表一个数据库连接。可以使用DriverManager的getConnection(String url,String username,String password)方法传入指定的的连接的数据库的路径、数据库的用户名和密码来获取。例如: String url="jdbc:mysql://localhost:3306/jsp?useUicode=ture&characterEncoding=utf-8"; //数据库连接字串 static String userName="root"; //数据库用户名称 static String driver="com.mysql.jdbc.Driver"; //数据库驱动名称 static String pwd="root"; //数据库用户登陆密码 try{ con=DriverManager.getConnection(url,userName,pwd); } catch (ClassNotFoundException e) { e.printStackTrace(); } 4、 创建一个Statement 获取到了数据库的连接后,要操作数据库还要能执行SQL语句,要想执行SQL语句,必须获取java.sql.Statement实例,statement实例又可分为以下三种类型: 1、 执行静态的SQL语句,通常通过Statement实例实现 2、 执行动态的SQL语句,通常通过PreparedStatement实例实现。 3、 执行数据库存储过程,通常通过CallableStatemtent实力实现 具体代码如下: Statement st = con.createStatement(); PreparedStatement ps = con.prepreadStatement(sql); CallableStatement ca = con.prepareCall(“{CALL demoSp(?,?)}”); 5、 执行SQL语句 Statement接口提供了三种执行SQL语句的方法,executeQuery、executeUpdate和execute 具体使用的是哪一种是有SQL的语句的结果来决定的。 1、 ResultSet executeQuery(String sqlString):执行查询数据库的SQL,如SELECT语句, 返回一个结果集对象; 2、 int executeUpdate(String sqlString);:用于insert update或者delete语句以及SQL DDL语句; 3、 execute(String sqlString):用于执行返回多个结果集,多个更新计数或二者组合的语句。 6、 处理结果 执行后会有两种结果: i. 执行更新返回的是本次操作影响的记录数 ii. 执行查询放回的结果是一个ResuletSet对象 7、 关闭JDBC对象 在操作完成后都要把使用的JDBC对象全部关闭,释放JDBC资源,关闭的顺序是: 关闭结果集——关闭声明对象——关闭连接 具体代码如下: rs.close(); ps.close(); con.close();

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档