JDBC基础

所谓JDBC即是:Java DataBase Connectivity,java与数据库的连接。是一些用来执行SQL语句的Java API。

我们进行JDBC的编程,主要常用的几个概念:Connection  、 Statement  、PreparedStatement   、 ResultSet。

一、Connection对象

Connection对象,代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象可以等价于到服务器的实际网络连接。简单点介绍,在java编程中即是java程序与数据库之间的一个数据通道,所有对数据库中数据的操作,均需要通过这个通道进行,因此,该对象也是进行与数据库对接的首要创建对象,该对象提供了很多方法,用来实现与程序与数据库的数据交互,常见的有

××××.getConnection(url, user, password)  //建立数据库的连接通道(会话)

.Closed()//关闭连接                 .isClosed()  //通道是否关闭

createStatement() //创建statement对象               prepareStatement(sql);    //创建prepareStatement对象,sql为未填装语句

二、Statement对象

Statement对象,是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。主要作用即是向数据库发送一些简单的SQL语句,使得java通过statement即可对数据库中的数据进行增删改查,该对象一般通过Connection对象的createStatement()方法来创建。它常用的方法有:

executeQuery()  // 执行SQL语句,并返回一个ResultSet的实例

三、PreparedStatement对象


PreparedStatement继承自Statement,也是一个向数据库发送SQL语句的接口,相比于Statement,它具有更高频率的使用,向它传入的SQL语句可以使用占位符,是预编译的,SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。所谓占位符的SQL语句即是一种输入了键但是对应的值用 ?来代替的SQL语句,例如:    select password from grils where id = ?   ,这里的 ?     未确定的值,可以根基后续的set***方法来填装完成,使他成为完整的SQL语句

该对象常用的方法有:

set××××(int,string)//填装SQL语句中占位符的参数

executeQuery()  //执行带填装完成的SQl语句,返回一个ResultSet实例

四、ResultSet对象

ResultSet,数据库结果集的数据表,通过执行查询数据库的语句生成,以statement / preparedstatement的execteQuery方法返回,该对象返回了数据库执行SQL语句后的结果集,通过其特有的方法,可以在java中提取出这些数据集。常用方法:

next();//用于遍历循环结果集

getString()//返回String类型的值

getInt()//返回Int类型的值

等等

具体实现JDBC连接代码

 public class JdbcUtil {
private static String url="jdbc:mysql://127.0.0.1:3306/user";
private static String user="root";
private static String password="root";
private static Connection con = null;
static{
try {
Class.forName("com.mysql.jdbc.Driver");//映射加载数据库驱动
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con = DriverManager.getConnection(url, user, password);//传入账号密码,建立连接
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection()
{
try {
con = (con==null||con.isClosed())?DriverManager.getConnection(url, user, password):con;
//判断连接是否建立
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;//返回通道
} }
 public class Opearte {

 public boolean getuser(String username,String password) throws SQLException
{
String sql = "select password from user where id=?";
Connection con = JdbcUtil.getConnection();
PreparedStatement stat = con.prepareStatement(sql);//预处理sql语句生成可执行数据
ResultSet rs = null;
stat.setString(1, username);
rs = stat.executeQuery();
while(rs.next())
{
if( password.equals(rs.getString("password")))
{
return true;
}
}
return false;
}
}

JDBC的基础接口及其用法的更多相关文章

  1. Java 基础 接口和多态

    接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...

  2. Java JDBC的基础知识(一)

    一.为什么引入JDBC 在学习JDBC之前,抛开它的概念,我先按照我的理解解释一下,为什么要引入JDBC.在我看来,引入JDBC跟我之前学过的引入JVM(Java虚拟机)有些相似之处.当然,关于JVM ...

  3. MMORPG大型游戏设计与开发(服务器 AI 基础接口)

    一个模块都往往需要统一的接口支持,特别是对于非常大型的模块,基础结构的统一性非常重要,它往往决定了其扩展对象的通用性.昨天说了AI的基本概述以及组成,作为与场景模块中核心一样重要的地位,基础部分的设计 ...

  4. jdbc执行Statement接口的步骤

    jdbc执行Statement接口的步骤如下: 1)驱动注册程序: Class.forName(com.mysql.jdbc.Driver); 2)获取连接对象: Connection conn = ...

  5. .net微信公众号开发——基础接口

    作者:王先荣    本文讲述微信公众号开发中基础接口的使用,包括以下内容:    (1)获取许可令牌(AccessToken):    (2)获取微信服务器地址:    (3)上传.下载多媒体文件:  ...

  6. EasyUI中Base(基础)的基本用法

    EasyUI中Base(基础)的用法 一.Base(基础) 1.parser 解析器 2.easyloader 简单加载 3.draggable 拖动 4.droppable 放置 5.resizab ...

  7. php获取微信基础接口凭证Access_token

    php获取微信基础接口凭证Access_token的具体代码,供大家参考,具体内容如下 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进 ...

  8. scrapy之基础概念与用法

    scrapy之基础概念与用法 框架 所谓的框架就是一个项目的半成品.也可以说成是一个已经被集成了各种功能(高性能异步下载.队列.分布式.解析.持久化等)的具有很强通用性的项目模板. 安装 Linux: ...

  9. face_recognition 基础接口

    face_recognition 基础接口 face_recognition使用世界上最简单的人脸识别库,在Python或命令行中识别和操作人脸. 使用dlib最先进的人脸识别技术构建而成,并具有深度 ...

随机推荐

  1. Wannafly挑战赛18B 随机数

    Wannafly挑战赛18B 随机数 设\(f_i\)表示生成\(i\)个数有奇数个1的概率. 那么显而易见的递推式:\(f_i=p(1-f_{i-1})+(1-p)f_{i-1}=(1-2p)f_{ ...

  2. P4360 [CEOI2004]锯木厂选址

    P4360 [CEOI2004]锯木厂选址 这™连dp都不是 \(f_i\)表示第二个锯木厂设在\(i\)的最小代价 枚举1号锯木厂 \(f_i=min_{0<=j<i}(\sum_{i= ...

  3. Navigation - How to define the structure of the navigation tree via the NavigationItemAttribute

    In the meantime, you should use the Model Editor to create such a navigation structure. There are se ...

  4. 180918-JDK之Deflater压缩与Inflater解压

    JDK 压缩与解压工具类 在实际的应用场景中,特别是对外传输数据时,将原始数据压缩之后丢出去,可以说是非常常见的一个case了,平常倒是没有直接使用JDK原生的压缩工具类,使用Protosutff和K ...

  5. LR测试报告分析 -详解

    1. 结果摘要 LoadRunner进行场景测试结果收集后,首先显示的该结果的一个摘要信息,如下图所示.概要中列出了场景执行情况.“Statistics Summary(统计信息摘要)”.“Trans ...

  6. Linux入门基础(五):Linux管道,重定向,文本处理

    多命令协作:管道及重定向 在Linux中,大多数命令都很简单,每个命令往往只实现一个或几个很简单功能. 我们可以通过将不同功能的命令组合起来一起使用,达到完成某个复杂功能的目的 CLI下几乎所有的命令 ...

  7. 统计学习方法c++实现之八 EM算法与高斯混合模型

    EM算法与高斯混合模型 前言 EM算法是一种用于含有隐变量的概率模型参数的极大似然估计的迭代算法.如果给定的概率模型的变量都是可观测变量,那么给定观测数据后,就可以根据极大似然估计来求出模型的参数,比 ...

  8. 啥是MD5?

    啥是MD5加密呢?为啥要使用MD5这种非对称的加密方式呢? 本文将通过漫画的形式来通俗易懂的讲述什么是MD5加密算法(Message Digest Algorithm MD5(中文名为消息摘要算法第五 ...

  9. 解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 (转载)

    解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 发表于 2017-09-15 | 更新于 2018-04-29 | 分类于 Linux | 评论数: ...

  10. 虚拟机中安装MAC OS X教程(适用所有电脑方法,特别是cpu不支持硬件虚拟化的电脑)

    前言 之前写了一篇在Windows上搭建Object-C开发环境,并且写了一个HelloWorld程序.但真正开发苹果软件是在MAC OS X系统中(以下简称OSX)中.买不起MacBook,也没有O ...