- 浏览: 89143 次
- 性别:
- 来自: 广州
最新评论
今天来分析一下上次的程序和数据库的增删查改操作。
首先,我们用Class.forName方法去初始化字符串相应的类,即
等于
不过前者即使要引入的类没有都可以编译通过,而后者则不能,所以如果想要实现动态加载的话,前者是其中一种可行的方法。
然后,我们使用DriverManager这个工具方法获取一个链接实例:
参数说明:
获取Connection对象之后,程序就会打开一个链接和数据库进行交互。Connection对象是我们与数据库交互的入口,它通关与数据库打交道的所有资源及操作环境配置。我们可以通过它创建SQL运行环境,进行事务相关操作等。这个在日后介绍。
然后,我们为了执行SQL命令,需要创建一个java.sql.Statement对象:
Statement对象允许我们去执行查询及修改数据库记录的SQL,通过以下方法:
如果要获取一条记录内容,只能够通过executeQuery方法,它会返回一个ResultSet对象,其实这个对象就是一个数据库指针操作方法的封装集合。我们可以通过它的next()方法移动指针,然后通过getXXX([columnName|columnIndex])方法获取各个字段的值,其中XXX为Java数据类型。
以下是一种常用的轮训记录操作代码,这段代码只使用于轮训非大对象类型记录:
如果执行execute()方法,则只会返回该SQL执行后影响到的记录行数。
最后,我们需要强调一下,如果我们运行完数据库操作程序,我们必须执行java.sql.Connection对象的close();方法,以释放当前链接,否则,就会导致该链接一直被占用而无法释放的问题出现,也就是我们著名的数据库链接泄漏问题。
如果你只是当前的操作完成了,但是不想关闭数据库链接,则可运行java.sql.Statement.close()方法来释放当前操作环境资源。
同理,如果不再操作指针对象了,应该调用java.sql.ResultSet.close()方法。
必须记住要在操作完以后操作相应资源。当然,如果Connection.close()被调用之后,其实所有该Connection派生出来的资源都会被释放。
当然时至今日,直接进行JDBC操作的人已经很少了,但是了解清楚实现底层接口对于了解ORM工具还是很有帮助的。
下次我们会来介绍一下java.sql.PreparedStatement类。
首先,我们用Class.forName方法去初始化字符串相应的类,即
Class.forName("com.mysql.jdbc.Driver");
等于
new com.mysql.jdbc.Driver();
不过前者即使要引入的类没有都可以编译通过,而后者则不能,所以如果想要实现动态加载的话,前者是其中一种可行的方法。
然后,我们使用DriverManager这个工具方法获取一个链接实例:
java.sql.Connection conn = DriverManager.getConnection(url,username,password);
参数说明:
参数名 | 作用 |
url | 数据库链接地址,通常是按照jdbc:数据库链接类型:主机地址(:端口)/实例名的格式,例如jdbc:mysql://localhost/test |
username | 登录用户名 |
password | 登录密码 |
获取Connection对象之后,程序就会打开一个链接和数据库进行交互。Connection对象是我们与数据库交互的入口,它通关与数据库打交道的所有资源及操作环境配置。我们可以通过它创建SQL运行环境,进行事务相关操作等。这个在日后介绍。
然后,我们为了执行SQL命令,需要创建一个java.sql.Statement对象:
java.sql.Statement stmt = conn.createStatement();
Statement对象允许我们去执行查询及修改数据库记录的SQL,通过以下方法:
//查询 java.sql.ResultSet rs = stmt.executeQuery("select * from test"); //增删改 int affectedNumber = stmt.execute("delete from test");
如果要获取一条记录内容,只能够通过executeQuery方法,它会返回一个ResultSet对象,其实这个对象就是一个数据库指针操作方法的封装集合。我们可以通过它的next()方法移动指针,然后通过getXXX([columnName|columnIndex])方法获取各个字段的值,其中XXX为Java数据类型。
以下是一种常用的轮训记录操作代码,这段代码只使用于轮训非大对象类型记录:
java.util.Array<java.util.Map<String,Object>> results = new java.util.Array<java.util.Map<String,Object>>(); while(rs.next())//查看是否还有下一条记录,如果有把指针移到下一记录处 { java.util.Map<String,Object> row = new java.util.HashMap<String,Object>(); row.put("id",rs.getInt(1)); //获取当行第一列的数据 row.put("name",rs.getString("username")); //获取当行username列的值 row.put("birthday",rs.getDate("birth")); //获取出生日期(没有时间) row.put("registerDate",rs.getTimestamp("created_by")); //获取日期加时间类型数据 }
如果执行execute()方法,则只会返回该SQL执行后影响到的记录行数。
最后,我们需要强调一下,如果我们运行完数据库操作程序,我们必须执行java.sql.Connection对象的close();方法,以释放当前链接,否则,就会导致该链接一直被占用而无法释放的问题出现,也就是我们著名的数据库链接泄漏问题。
如果你只是当前的操作完成了,但是不想关闭数据库链接,则可运行java.sql.Statement.close()方法来释放当前操作环境资源。
同理,如果不再操作指针对象了,应该调用java.sql.ResultSet.close()方法。
必须记住要在操作完以后操作相应资源。当然,如果Connection.close()被调用之后,其实所有该Connection派生出来的资源都会被释放。
当然时至今日,直接进行JDBC操作的人已经很少了,但是了解清楚实现底层接口对于了解ORM工具还是很有帮助的。
下次我们会来介绍一下java.sql.PreparedStatement类。
发表评论
-
JAVA简单教程:数据库操作(三)——PreparedStatement和动态SQL
2010-03-12 12:30 8706如果我们的SQL语句是固 ... -
JAVA简单教程:数据库操作(一)
2010-03-05 16:40 1913最近依然是事情太多,一直无法坚持每天写份blog,对不起大家。 ... -
每天JAVA简单教学:枚举类
2010-02-02 14:41 1557今天给大家介绍一个JDK1.5的新特性:枚举类 先来看看以下 ... -
每天JAVA简单教学:类定义,成员类,抽象类及接口类
2010-01-27 11:58 1609最近忙得快疯掉了,而且着凉了病得好辛苦。。。不过今天还是能抓紧 ... -
每天JAVA简单教学:类型强转
2010-01-19 11:56 7620关于类型,我们说了不 ... -
每天JAVA简单教学:简单数据类型、地址比较和值比较
2010-01-18 11:48 2310昨天说了布朗运算,今天详细解释一下其中的==运算符和Objec ... -
每天JAVA简单教学:布朗运算
2010-01-15 14:46 2294布朗值,就是true和false,对于产生这两个值的运算,就是 ... -
每天JAVA简单教学:基本运算符
2010-01-13 18:09 1096今天来介绍一些基础运算符,先用int整数类型做介绍,最后用St ... -
每天简单JAVA教学:循环语法(二)
2010-01-07 10:07 1542自从JRE升级到1.5以后,java的for循环就更加方便了。 ... -
每天简单JAVA教学:循环语法(一)
2010-01-06 13:32 2096现在开始介绍跟变成有密切关系的Java语法,首先来介绍循环的写 ... -
每天简单JAVA教学:super和this
2010-01-05 11:49 1589因为实在太忙这么多天来都没时间上来写东西,感觉非常对不起大家。 ... -
每天简单JAVA教学:变量
2009-12-28 16:02 1277很抱歉,最近事忙,所以很少有时间上来写东西,希望大家见谅。 ... -
每天简单JAVA教学:类继承,重写、重构及重载,final的用法
2009-12-23 12:25 4041昨天事忙,所以没时间给大家写blog,抱歉一下。 今天说的内 ... -
每天简单JAVA教学:JVM的内存管理,static的用法
2009-12-21 14:41 2618今天的主题是介绍static和final这两个指示器的用法。但 ... -
每天简单JAVA教学:Modifier
2009-12-18 10:31 9578昨天给大家介绍了怎么进行同一个类里面的方法调用,今天将会给大家 ... -
每天简单JAVA教学:方法的调用
2009-12-17 14:59 1293继续我们的简单教学。 ... -
每天简单JAVA教学:第一个main程序分析
2009-12-16 23:12 1592上次我们轻松地完成了H ... -
每天简单JAVA教学:Hello World!
2009-12-16 00:39 1563以下文章只适合新手,新是很新很新的新。。。。自认对编程和JAV ...
相关推荐
本教程将介绍如何使用Java实现一个简单的学生成绩管理系统,该系统完全基于控制台输出,适合Java初学者进行基础学习。 首先,我们需要了解Java中的JDBC(Java Database Connectivity),这是一个Java API,用于在...
在本实例中,我们主要探讨的是如何使用Java语言进行数据库操作,这涉及到Java数据库连接(JDBC)技术以及数据库管理系统(DBMS)的基础知识。这是一个简单的学生信息管理系统,旨在教授初学者如何创建、读取、更新和...
在这个“简单的商品信息管理系统(Java 和MySQL数据库)增删改查傻瓜式教程”中,我们将探讨如何使用Java编程语言和MySQL数据库来构建一个基础的数据管理应用。这个系统的核心功能包括添加商品、删除商品、更新商品...
6. **关闭资源**:在完成数据库操作后,确保关闭`ResultSet`、`Statement`和`Connection`,以释放数据库资源: ```java rs.close(); // 关闭ResultSet stmt.close(); // 关闭Statement conn.close(); // 关闭...
本示例提供了一个简单的Java数据库编程教程,旨在帮助初学者理解如何使用Java与数据库进行交互。我们将深入探讨以下几个核心知识点: 1. JDBC(Java Database Connectivity):JDBC是Java标准API,用于连接和操作...
本教程深入讲解了Oracle的基础知识,结合JDBC(Java Database Connectivity)技术,帮助开发者掌握与数据库的高效连接和操作。 【Oracle数据库基础】 Oracle数据库确保数据的完整性是其核心特性之一,这涉及到四个...
Java数据库教程JDBC是Java开发人员学习如何与各种数据库系统交互的重要内容。JDBC全称为Java Database Connectivity,它提供了...在实际开发中,结合Oracle等数据库的基础知识,可以更高效地利用JDBC进行数据库操作。
**SQL语言和数据库操作**: SQL是一种结构化查询语言,具有以下特点: - **非过程化**:一次可访问多个记录,简化数据操作。 - **通用性**:SQL是所有关系数据库的标准,可以跨数据库平台使用。 - **简单语法**:SQL...
【Java数据库连接教程】 ...通过学习和实践JDBC,你可以熟练地在Java应用程序中进行数据库操作,无论是简单的数据访问还是复杂的事务处理。记得在实际开发中,还要考虑错误处理、连接管理和性能优化等高级主题。
学习“Java技能百练--数据库篇”将有助于你掌握数据库操作的各个方面,无论是简单的CRUD操作还是复杂的查询设计,都能得心应手。通过实战练习,你可以深入理解如何在Java项目中高效地使用数据库,提升自己的编程能力...
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:vue/jsp/html5 后台框架:SSM 开发环境:idea 数据库:MySql(建议用...
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 里面有部署教程,项目都经过严格调试,确保可以运行! 1. 技术组成 后台框架:SpringBoot 前端:Vue 数据库:MySQL (5.7 ...
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql5.7以上 部署环境:...
本教程将聚焦于“Java连接SQL Server数据库”的初学案例,帮助初学者掌握如何使用Java进行数据库操作。 首先,我们要了解Java连接数据库的基本原理。Java通过JDBC(Java Database Connectivity)API来实现与各种...
Java实现数据库连接池简易教程主要涉及了如何在Java应用程序中创建并管理数据库连接池。数据库连接池是一种优化数据库操作的技术,通过复用已存在的数据库连接,减少频繁创建和关闭连接带来的性能开销。本文将介绍一...
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql5.7以上 部署环境:...
JDBC提供了一组接口和类,使得开发者能够用Java代码来操作数据库。 - JDBC驱动程序是连接Java与MySQL的关键,需要根据MySQL的版本选择合适的JDBC驱动(如Connector/J)。 5. **图书管理系统的功能**: - 用户管理...
4. **SQL语言**:SQL(结构化查询语言)是数据库操作的核心,包括数据查询、插入、更新和删除,以及复杂的数据库设计和优化。掌握SQL的DML(数据操纵语言)、DDL(数据定义语言)和DCL(数据控制语言)是进行数据库...
【JSP数据库操作】是关于如何使用Java Server Pages(JSP)进行Web应用程序中的数据库交互的教程。JSP是一种基于Java的技术,用于创建动态网页,它允许开发者在HTML页面中嵌入Java代码,以实现服务器端的数据处理。 ...
它简化了数据库操作,让开发者无需了解底层数据库的具体细节。 2. **JDBC驱动类型**:JDBC驱动主要有三种类型: - **JDBC-ODBC桥**:适用于初学者,简单易用,但需要安装ODBC驱动,并可能受到平台和性能限制。 - ...