JDBC(Java DataBase Connection),java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时JDBC也是个商标名。

简单地说,JDBC可做三件事:

1、与数据库建立连接;

2、发送操作数据库的语句;

3、处理结果。

JDBC开发的六个基本步骤:(以Mysql数据库为例)

1、加载Driver

2、获得数据库连接(Connection接口)

3、创建Statement(接口,传送sql命令的工具)

4、执行sql();

5、如果执行了select,处理ResultSet(接口,结果集)

6、释放资源

第一步:注册Driver,加载Driver的实现类

Class.forName(“com.mysql.jdbc.Driver”);

第二步:获得Connection

Connection connection = DriverManger.getConnection( url , username, password);

其中String url =" jdbc:mysql:localhost:8081/db01";

DriverManager是Driver的管理者,实际连接db的是Driver

第三步:创建Statement

Statement stm = conn.createStatement();

第四步:执行sql命令

返回boolean值,表示是否有ResultSet返回。true-->有  false-->没有

if( resultSet.next()){    ResultSet rs = stm.getResultSet();  }

2.  executeQuery(sql) : 专门执行select(查询语句所用),返回ResultSet

3.  executeUpdate(sql) : 专门执行insert update delete(添加,删除,修改操作所用),返回一个int值,表示命令,执行后,表里受到影响的行数

第五步:处理ResultSet

1. next() : 向下一行移动指针,同时返回一个boolean,用来表明当前行是否有数据

2. get**()系列:获取当前的某一列数据。getInt(列的下标)   getString   getDate  getDouble

3. 结果集里的指针开始处于”第一行的上一行“,结束时处于”最后一行的下一行“

第六步:释放资源

按照产生对象逆序释放相关资源  rs --> stm --> conn。

下面给出查询操作和添加操作的代码(修改,删除雷同):

查询代码:

public UserBean findById(int id){

  Connection connection = null;

  PreparedStatement preparedStatement = null;

  ResultSet resultSet = null;

  try {

  connection = getConnection(true);

  String sql = "select id,phone,pwd from user where id=?";

  preparedStatement = connection.prepareStatement(sql);

  preparedStatement.setInt(1, id);

  resultSet = preparedStatement.executeQuery();

  if(resultSet.next()){

  UserBean userBean = new UserBean();

  userBean.setId(resultSet.getInt(1));

  userBean.setPhone(resultSet.getString(2));

  userBean.setPwd(resultSet.getString(3));

  return userBean;

}

} catch (Exception e) {

  e.printStackTrace();

  } finally {

  try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}

  try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}

  try {connection.close();} catch (SQLException e) {e.printStackTrace();}

  }

  return null;

}

添加代码:

public boolean add(UserBean userBean){

  Connection connection = null;

  PreparedStatement preparedStatement = null;

  

  try {

  connection = getConnection(false);

  String sql = "insert into user(phone,pwd) value(?,?)";

  preparedStatement = connection.prepareStatement(sql);

  preparedStatement.setString(1, userBean.getPhone());

  preparedStatement.setString(2, MD5Util.getMD5Str(userBean.getPwd()));

  preparedStatement.executeUpdate();

  connection.commit();

  return true;

  } catch (Exception e) {

  try {connection.rollback();} catch (SQLException e1) {e1.printStackTrace();}

  e.printStackTrace();

  } finally {

  try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}

  try {connection.close();} catch (SQLException e) {e.printStackTrace();}

  }

  return false;

  }

其中涉及到的connection.commit();属于事件,将在之后的章节中介绍。

JDBC:Java连接数据库的桥梁的更多相关文章

  1. Java学习(JDBC java连接数据库)

    一.概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...

  2. 使用JDBC技术连接数据库(附源码)--JAVA的简单应用

    一.创建数据库(以mysql数据库为例) mysql数据库的下载安装与配置 -可参考博主之前的随笔:Windows平台下搭建MySQL数据库 创建wxb数据库-create database wxb; ...

  3. java连接数据库(jdbc)调用配置文件

    各种语言都有自己所支持的配置文件,后缀名“.properties”结尾的就是其中之一. 在java连接数据库时,采取读取配置文件的方式,来获取数据库连接. 新建jdbc.properties文件,内容 ...

  4. Java连接数据库 #02# JDBC经典套路

    内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2 ...

  5. Java连接数据库 #01# JDBC单线程适用

    官方教程(包括 javase的基础部分):JDBC Basics 重新梳理.学习一下“Java连接数据库”相关的内容. 因为最开始没有认真学多线程和JDBC,一直在自己写的多线程程序中维持下面的错误写 ...

  6. java连接数据库(jdbc)的标准规范

    java连接数据库的标准规范 JDBC全称:java database connectivity ,是sun公司提供的Java连接数据库的标准规范. localhost和127.0.0.1 都是表示当 ...

  7. Java连接数据库的辣几句话

    Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...

  8. servlet中Java连接数据库后的基本操作

    servlet中Java连接数据库后的基本操作 在eclipse中新建一个工程:login 在Server中新建一个服务器,基本的操作不用说了,在前两天的笔记中可以找到; 需要知道数据库的用户名和密码 ...

  9. java连接数据库

    package com.shsxt.jdbcs; import java.sql.Connection; import java.sql.DriverManager; import java.sql. ...

随机推荐

  1. 阿里云服务器linux(centos)常用命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  2. 富文本编辑器ckeditor继承

    新建一个web项目ckfinder,导入lib包 加入java包,编码格式UTF-8 在WebRoot下添加ckedtior以及ckfinder两个文件夹,将config.xml拷入WEB-INF中 ...

  3. C# async await 例子

    private static async void Worker() { Console.Write("main thread id is :{0}",Thread.Current ...

  4. Windows Server 2012 R2 Standard序列号

    备用一个吧,免得用起来的时候找不到. NB4WH-BBBYV-3MPPC-9RCMV-46XCB

  5. getDeclaredConstructor()与getConstructor的差别

    首先看getDeclaredConstructor(Class<?>... parameterTypes)  这种方法会返回制定參数类型的全部构造器,包含public的和非public的, ...

  6. HTML5API___manifest

    离线缓存 manifest 在html标签里面增加个属性 mainfest 就可以告诉浏览器缓存文件在哪里. <html manifest='show.manifest' xmlns=" ...

  7. SQL Server 判断表中是否存在某字段

    功能:判断表中是否存在某字段,若不存在,则新增该字段 语句: IF NOT EXIST (SELECT 1 FROM [DATABASE].[SCHEMA].SYSCOLUMNS WHERE ID=O ...

  8. SQL Server和MySql获取当前数据库每个表的列数

    Sql server:(连接数据库后,点击当前数据库再新建查询) select count(c.name),o.name from syscolumns c left join sysobjects ...

  9. Android ListView 删除动画

    Android 的ListView在删除条目时,被删除的条目直接消失,比较生硬,在此实现一下删除动画,大家一起探讨:主要实现原理即是通过Animator来实现被删除条目的动画效果,然后在动画结束时通过 ...

  10. PrintWriter与outputStream区别

    网上截取: printWriter:我们一般用来传的是对像 而outputStream用来传的是二进制,故上传文件时,一定要使用此. PrintWriter以字符为单位,支持汉字,OutputStre ...