0822JDBC--Java连接数据库

JDBC定义:
    JDBC全称: Java DataBase Connectivity
      独立于特定数据管理系统, 通用的sql数据库存取和操作的公共接口, 是一种面向接口编程
    JDBC为访问不同的数据库提供了不同的途径

ojdbc6.jar是JDBC连接数据库所必需的一个驱动包, 这个驱动包里面的某些特定的方法实现了下面三个接口, 从而可以连接到数据库
      我们把这种可以实现这三个接口的jar称为数据库的驱动包

Connection接口是jdk中定义好的一个数据库连接的接口, 在javaAPI当中没有定义任何实现该接口的实现类, 这些实现类将会由数据库厂商提供, 同样Statement, ResultSet这两个接    口都是以这种形式来定义, 这样的编程模式成为面向接口编程

JDBC主要使用的一个类和三个接口:
    DriverManager:
        驱动程序管理类, 由这个类来获取Connection接口的实例

Connection: 获取数据库的连接, 设置自动提交方式, 获取Statement(包括其子类)对象
        prepareStatement(sql)-->返回用于执行sql语句的一个对象
        callableStatement-->返回执行存储过程的一个对象
        setAutoCommit(true)-->设置数据库提交方式(自动 / 手动)

Statement: 执行sql语句, 返回结果集
        返回boolean类型 prepareStatement.execute()-->用于执行存储过程和函数
        返回ResultSet prepareStatement.executeQuery()-->用于查询的语句
        返回int prepareStatement.executeUpdate()-->用于增, 删, 改的语句

批量处理:
            prepareStatement.addBatch()-->每次处理一条sql语句
            返回int[] prepareStatement.executeBatch()-->将一批命令提交给数据库去执行

以占位符的形式构建sql语句
            String sql = "select * from tablename t where t.id=? and t.name in (?,?,?)";
            prepareStatemenet.setInt(1, 24)
            prepareStatemenet.setString(2, "Tom");
            prepareStatemenet.setString(3, "Jack");
            prepareStatemenet.setString(4, "Kitty");
            prepareStatemenet.executeQuery();
            调用设置占位符参数方法, 需要传两个参数:
                第一个参数: 占位符索引值, 第几个 ? , 就写几, 从1开始数
                第二个参数: 占位符的值, 设置什么类型的参数, 就用什么类型的方法

ResultSet:
        由Statement执行查询sql之后返回的结果集
        返回boolean类型 next()-->判断结果集是否有下一行数据
        获取数据
            resultSet.getString()--->方法可以传字符串, 表示表中字段的名字, 也可以传整数, 表示第几列
            resultSet.getInt()
            resultSet.getDate()
            ...
        通过对各种方法的重写来获取结果集中的数据

java连接数据库的代码
    定义四个属性: username, password, url, driver

    private static final String USERNAME = "数据库登录名";
    private static final String PASSWORD = "数据库登录密码";
    private static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
    private static final String DRIVERCLASSNAME = "oracle.jdbc.OracleDriver";

1, 类加载器去加载数据库的驱动程序

   Class.forName(dirver);
        2, 直接调用DriverManager的静态方法getConnection()获取连接
        Connection conn = DriverManager.getConnection(url, username, password);

时间: 2024-08-09 02:28:36

0822JDBC--Java连接数据库的相关文章

java连接数据库

在软件开发的过程中,和数据库打交道是必须的.java连接数据库比较简单,但是对于刚开始学习编程的人员来说,可能会有点不知从哪里入手,现在就为大家讲解一下java连接数据库的方法: 1.打开myeclipse,新建一个java工程: 在工程下面新建一个包: 2.新建一个java类,叫DBManger,并在此类中编写代码: 代码书写好之后,要加入数据库的驱动包: 右键点击项目----Build path----Configure Build Path---点击Libraries 点击 Add Ext

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

servlet中Java连接数据库后的基本操作 在eclipse中新建一个工程:login 在Server中新建一个服务器,基本的操作不用说了,在前两天的笔记中可以找到; 需要知道数据库的用户名和密码:用户名:user.密码:yufei 需要改变的地方: 地方一:web.xml <?xml version="1.0"     encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/

java 连接数据库mysql的方法

1.把那个文件配置好环境变量. 2.创建数据库,插入数据 注意的地方: (1)环境变量 classpath(可大写,也可以小写,可放在个人变量,也可以试系统变量) 里面的值 F:\mysql-connector-java-5.1.10-bin.jar 一定要有点和分号,如下 .;F:\mysql-connector-java-5.1.10-bin.jar (2) 在Eclipse里面如果配置好,添加了 mysql--connect 才可以的.不需要在环境变量里面,也不需要在环境变量(因为也没用,

Mysql最后补充+Java连接数据库

Truncate table 表名 直接删除表中全部数据,与delete不同的是,此方法无法使用where选择,只能全部删除. truncate table users; Java连接数据库: package com.edu.gkh; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.Scanne

java 连接数据库

java连接数据库的工具包. package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBhelper { /** * 数据库用户名 */ private static final String USERNA

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

内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2.0 DaoException.java DbUtil.java-2.0 ProfileDAOTest.java-2.0 DaoTest.java(并发测试) 接Java连接数据库 #01# JDBC单线程适用,主要是改为多线程适用,顺便对DAO层结构进行改良: connection由共享变量改为由

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

官方教程(包括 javase的基础部分):JDBC Basics 重新梳理.学习一下“Java连接数据库”相关的内容. 因为最开始没有认真学多线程和JDBC,一直在自己写的多线程程序中维持下面的错误写法: 多个线程共用一个connection connection只开不关 为什么上述做法是错误的呢? 可以参看这个帖子.- - “JDBC规范并未规定那三个对象必须是线程安全的,因此所有的JDBC厂商也不会去弄成线程安全的,正因为如此,所以就会有并发问题.” .-- “ 并不是说不能把连接对象弄成成

JAVA连接数据库 #03# HikariCP

索引 为什么用数据库连接池? HikariCP快速入门 依赖 简单的草稿程序 设置连接池参数(只列举常用的) MySQL配置 修改Java连接数据库 #02#中的代码 测试 为什么用数据库连接池? 为什么要用数据库连接池? 如果我们分析一下典型的[连接数据库]所涉及的步骤,我们将理解为什么: 使用数据库驱动程序打开与数据库的连接 打开TCP套接字以读取/写入数据 通过套接字读取/写入数据 关闭连接 关闭套接字 很明显,[连接数据库]是相当昂贵的操作,因此,应该想办法尽可能地减少.避免这种操作.

Java连接数据库 #04# Apache Commons DbUtils

索引 通过一个简单的调用看整体结构 Examples 修改JAVA连接数据库 #03# HikariCP中的代码 DbUtils并非是什么ORM框架,只是对原始的JDBC进行了一些封装,以便我们少写一些重复代码.就“用”而言,仅仅需要学习QueryRunner类和ResultSetHandler接口就可以了.它的显著特点就是超级轻量级,总代码量目测似乎还不到一万行. 通过一个简单的调用看整体结构 public class TestDbUtils { private static final Qu

Java连接数据库 #05# SQL与代码分离

索引 读取html中的SQL语句 缺陷总结 在Java连接数据库 #04#里是大概是这样放sql语句的: package org.sample.shop.db.queryrunner; import org.sample.shop.db.queryrunner.statementfactory.StatementFactory; // TODO sql一长可读性变得非常非常差 public interface Statements { String ITEM_SAVE_ITEM = "INSER