用JDBC查询数据库
JDBC API的核心组件:
1.DriverManager类:用语跟踪可用的JDBC驱动程序并产生数据库连接。
2.Connection接口:用于取得数据库信息、生成数据库语句,并管理数据库事务。
3.Statement接口:用于在基层连接上运行SQL语句,并且生成一个结果集。Statement有两个子接口:PreparedStatement和CallableStatement。
PreparedStatement提供了可以与查询信息一起预编译的一种语句类型。
CallableStatement从PreparedStatement继承而来,它用来封装数据库中存储过程的执行。
4.ResultSet接口:用于访问SQL查询返回的数据。当读取结果时,可以使用它的next()方法依次定位每一行数据,然后用相应的get方法读取数据。
用JDBC查询数据库
用JDBC查询数据库的一般步骤是:
1.装入数据库:在查询数据库之前,用户需要确定特定数据库厂商提供的驱动器并装入它。
2.连接数据库:在装入针对某种特定数据库的驱动器之后,用户需要连接该数据库。
3.查询数据库:一旦连接到数据库,用户可以通过连接来提交并检索查询结果。
- 为建立与数据库的连接,需要通过调用Class类的forName()方法来装入数据库特定的驱动器。例如,装载MySql的驱动器如下:
Class.forName("com.mysql.jdbc.Driver"); - java.sql包中包含DriverManager类和Connection接口,用来连接数据库。要连接数据库,必须先从DriverManager类生成Connection对象。要生成Connection对象,还需要数据库的URL,用户名及密码等信息。例如,有一个本地MySql数据库,名叫mydatabase,其用户名为Bill,密码为123,那么生成连接数据库的Connection对象的方法如下:
String url="jdbc:mysql://localhost/mydatabase";
Connection con=DriverManager.getConnection(url,"Bill","123"); - 建立连接后,可使用两种对象查询数据库:Statement对象和PreparedStatement对象。
Statement对象:把简单查询语句发送到数据库,允许执行简单的查询。它有两个查询方法:executeQuery()和executeUpdate()。executeQuery()方法执行简单的选择(SELECT)查询,并返回ResultSet对象;executeUpdate()方法执行SQL的INSERT,UPDATE或DELETE语句,返回int值,给出受查询影响的行数。例如:
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from students");
PreparedStatement对象:允许执行参数化的查询。例如:
String sql="select * from students where stuID=?";
PrepareStatement ps=con.prepareStatement(sql);
ps.setString(1,"56789"); //设定参数值
ResulrSet rs=ps.executeQuery(); //获得查询结果 - 查询结果
查询结果一般封装在ResultSet对象中。ResultSet实际上是一张数据表。ResultSet对象有多种方法用来从查询结果中读取数据,如next()和getXXX(int cn)等。next()方法把光标移向下一行,getXXX(int cn)或getXXX(String colName)方法可用来检索ResultSet行中的数据,这里XXX代表列的数据类型,如String,Integer或Float,cn指结果集中的列号,colName代表列名。例如:
ResultSet rs=st.executeQuery("select * from students");
while(rs.next())
String name=rs.getString("student_name"); - 查询数据库示例例1-3
package chap1;
import java.sql.*;
public class JdbcTest {
public static void main(String[] args) {
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/test";
Connection con=DriverManager.getConnection(url,"root","root");
String sql="select * from test where userid=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1,"123");
ResultSet rs=ps.executeQuery();
while(rs.next()){
String name=rs.getString("username");
int age=rs.getInt(3); //这里的“3”指数据表中的第3个字段的值
System.out.println(name);
System.out.println(age);
}
rs.close();
con.close();
}catch(SQLException e){
System.out.println("Error"+e);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
转载于:http://hi.baidu.com/junjian8882001/item/0a86072ece00e60a43634afc
用JDBC查询数据库的更多相关文章
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...
- JDBC查询数据库中的数据
只用JDBC技术查询表中的全部内容时,需要使用查询全部的SQL语句,把查询结果放到List集合中. package qddx.JDBC; import java.util.*; import java ...
- (待解决)IDEA配置JDBC查询数据库PreparedStatement pstmt = dbconn.prepareStatement(sql)出现空指针错误
package com.demo; import java.io.*; import java.sql.*; import java.util.*; import javax.servlet.*; i ...
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- MySQL_(Java)使用JDBC向数据库发起查询请求
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC创建用户名和密码校验查询方法 传送门 MySQL_(Java)使用preparestatement ...
- spring jdbc 查询结果返回对象、对象列表
首先,需要了解spring jdbc查询时,有三种回调方式来处理查询的结果集.可以参考 使用spring的JdbcTemplate进行查询的三种回调方式的比较,写得还不错. 1.返回对象(queryF ...
- 通过jdbc获取数据库中的表结构
通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.Met ...
- JSP-06-使用JDBC操作数据库
6.1 使用JDBC查询数据 [链接oracle数据库] 具体操作: 1) 将odbc文件拷贝到项目中 Odbc文件所在目录: oracle安装目录下- product – db_1 – jdbc ...
- 用于JDBC操作数据库的公共类
/* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...
随机推荐
- NHibernate的简单例子
NHibernate的简单例子 @(编程) [TOC] 因为项目需求,搭了一个NHibernate的例子,中间遇到了一些问题,通过各种方法解决了,在这里记录一下最后的结果. 1. 需要的dll Com ...
- JUnit 4 如何正确测试异常
本篇讲述如何在 JUnit 4 下正确测试异常,我会从 try..catch 的方式谈起,然后说到 @Test(expected=Exception.class), 最后论及 @Rules publi ...
- JavaScript 核心参考教程 内置对象
这个标准基于 JavaScript (Netscape) 和 JScript (Microsoft).Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 ...
- IllegalStateException
例1 public static void main(String[]sdf){ List<String> list = new ArrayList<String>(); li ...
- 转载sublime text注册码
直接输入注册码就可以了 ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 ...
- 100个直接可以拿来用的JavaScript实用功能代码片段(转载)
把平时网站上常用的一些实用功能代码片段通通收集起来,方面网友们学习使用,利用好的话可以加快网友们的开发速度,提高工作效率. 目录如下: 1.原生JavaScript实现字符串长度截取2.原生JavaS ...
- ASP.NET MVC 4 中Jquery上传插件Uploadify简单使用-版本:3.2.1
1.官网下载开发包:http://www.uploadify.com/download/,选择免费的Flash版本: 2.解压后,需要用到以下几个文件: 需要修改uploadify.css中取消上传按 ...
- sql中 with rollup 、with cube、grouping 统计函数用法
with rollup .with cube.grouping CUBE 和 ROLLUP 之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP 生成的结果集显示了 ...
- Could not load file or assembly 'MagickNet.dll'
1 确定项目中bin目录下存在该DLL文件 2 安装 VC++发布组件_缩略图用_x86(1).exe
- 【转】Android TouchEvent事件传递机制
Android TouchEvent事件传递机制 事件机制参考地址: http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html ht ...