MySQL为例讲解JDBC数据库连接步骤
1、什么是JDBC?有什么作用? Java Data Base Connectivity Java数据库连接协议 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。 他提供了一种基准,据此可以构建更高级的工具和接口,使开发人员能够编写数据库应用程序 有了JDBC, 向各种关系数据发送sql语句就变得很容易了 换句话说就是有了JDBC API就不用为了访问Oracle数据库专门写一个程序 或者又为访问MySQL数据库专门写一个程序。 2、Java APP使用JDBC连接数据库并处理数据有哪些操作步骤? 将驱动包所在路径添加到CLASSPATH类路径变量中 (如:将mysql-connector-java-5.1.5-bin.jar复制到D:javasoft下,然后把“D:/javasoft/mysql-connector-java-5.1.5-bin.jar”增加到CLASSPATH变量值中) 步骤: 1)加载Driver驱动 2)创建数据库连接对象Connection 3)创建一个可向数据库发送SQL命令并返回结果的传送对象Statement 4)执行SQL命令并处理返回结果 5)处理后,如果有返回结果集,关闭结果集对象ResultSet 6)关闭对应的 Statement 对象 7)关闭连接对象Connection 3、案例分析1 //1、加载驱动 com.mysql.jdbc.Driver是驱动类的路径 Class.forName("com.mysql.jdbc.Driver"); //2、创建数据库连接对象 Connection conn = null ; Statement stmt = null ; ResultSet rs = null ; String url = "jdbc:mysql://localhost:3306/test" ; //localhost表示本机 3306为默认端口 test为数据库名称 String username = "root" ; //定义连接数据库的用户名和密码 String password = "root" ; conn = DriverManager.getConnection(url,username,password); 复制代码 代码如下: //3、创建一个可向数据库发送SQL命令并返回结果的传送对象Statementstmt = conn.createStatement();
复制代码 代码如下: //4、将sql命令通过sql传送对象Statement传送到数据库执行,并返回结果String sql = "select * from user" ;rs = stmt.executeQuery(sql);
executeQuery()用于执行查询语句,返回的是结果集,实际上就是一个满足查询条件的一个表 rs结果集通过指针来指定当前是哪一条数据 调用next方法,指针会指向下一条数据,如果有数据,会返回true //5、处理结果集 while(rs.next()){ println(rs.getString("username")); pringln(rs.getInt("password")); } 这里没有声明抛出异常,需要放在try catch 的try里面,或者抛出也行,如果放在try里面,要把catchSQLException... finally要将conn stmt rs 都close 因为这些都是JVM的外部资源,和IO一样都要手动关闭,它不在JVM的管理范围内 4、案例分析2(增删改) 增加、修改、删除都属于数据操作,与数据查询不同的是: 没有查询结果,不需要使用ResultSet 执行方法用的是executeUpdate()不是executeQuery() executeUpdate()方法也有返回值,但不是ResultSet,而是一个int,表示更新了多少条数据,一般可不处理 5、什么是事务? 是一组原子性的数据库操作,指的是一组数据库操作中,要么都成功,要么都不成功。 一个经典的例子:转账 从100001账户转账100.00元到100002账户: 如何进行事务管理? 默认是自动提交的,进行事务管理时首先要设为手动提交 程序正常运行时,最后调用Connection对象的commit方法进行事务提交 程序出现异常时,调用Connection对象的rollback方法进行事务回滚 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 有没有一种实用的方法来确定使用哪些JCE加密提供程
- java – 在某些情况下处理RuntimeExceptions有效吗?
- java – 为什么@Singleton在Producers中超过@ApplicationSc
- java – 由于servlet文件导致的xml错误无法找到元素的声明,
- Java中各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,J
- java – Apache POI SXSSF和XSSF
- Java获取虚拟机内存和操作系统内存及其线程
- java实现的MD5摘要算法完整实例
- java – 使用SSH的Apache Felix shell
- java – 如何安排代码执行?