JDBC

一、基础概念

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

2.简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果

3.Java数据库连接,提供了一种与平台无关的用于执行SQL语句的标准javaAPI,可以方便实现多种关系型数据库的统一操作

二、JDBC 执行流程

1.连接数据源,如:数据库

2.为数据库传递查询和更新指令

3.处理数据库响应并返回的结果

三、JDBC 编程步骤

1. 加载驱动程序,需要引入myqsl-connector的jar包

Class.forName(driverClass)

1)加载MySql驱动     Class.forName("com.mysql.jdbc.Driver")

2)加载Oracle驱动    Class.forName("oracle.jdbc.driver.OracleDriver")
2. 获得数据库连接
1)声明数据库url,user,password
public static final String URL = "jdbc:mysql://localhost:3306/imooc";
public static final String USER = "root";
public static final String PASSWORD = "";
2) 获得数据库连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
3) 操作数据库,实现增删改查
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
4)关闭各种资源
pstmt.close();
conn.close();  

四、代码示例

1. 前期准备
1) 已装好一个数据库(比如mysql)

2) 新建maven项目

3) maven中央仓库(http://mvnrepository.com/)搜索 “MySQL Connector”,加载驱动程序,需要引入myqsl-connector的jar包

4) 将如下依赖写到自己的pom.xml文件中,maven更新

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.41</version>
    </dependency>
2. 最简化示例代码
public class JDBCTest {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 加载mysql驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获得数据库连接(数据库url, 账号, 密码)
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/hh", "root", "");
        // sql语句
        String sql = "select * from user";
        // 把创建的SQL对象,转而存储到数据库当中,如果是有占位符的sql,用 PreparedStatement对象
        Statement stmt = conn.createStatement();
        // 执行sql,获得结果集
        ResultSet rs = stmt.executeQuery(sql);
        // 如果有数据,rs.next()返回true
        while(rs.next()){
            System.out.println("姓名:" + rs.getString("name")+" 城市:"+rs.getString("city"));
        }
        // 依次关闭流
        stmt.close();
        conn.close();
    }
}

五、JDBC常用方法

1.加载驱动
Class.forName("com.mysql.jdbc.Driver")
2.获得数据库连接
Connection conn = DriverManager.getConnection(url, user, password)
3.操作数据库,实现增删改查
 1) Statement                  Statement st = conn.createStatement();

 2) PrepareStatement           PreparedStatement ptmt = conn.prepareStatement(sql);

 3) Statement与PrepareStatement:

        (1)PreparedStatement可以写动态参数化的查询,先 String sql = "里面有占位符  ?",采用参数占位符,对于数据库来说是预编译再填充参数

        (2)PreparedStatement 的 SQL 对于数据库来说采用预编译,数据库会将其进行缓存,下一次可以直接拿来使用,省掉了解析 SQL 语句、编译 SQL 的时间

        (3)PreparedStatement 是 Statement 子接口,因此 Statement 有的功能 PreparedStatement 都有,而 Statement 没有的功能 PreparedStatement 也有
4)execute有关方法
(1) ResultSet execute(String sql);     

    执行select语句,返回的是查询后得到的记录集(ResultSet)

(2) boolean executeUpdate(String sql);   

     执行任何sql语句(select,insert,update,delete),返回值是第一个结果的表现形式。
     当第一个执行结果是查询语句是,返回true,可以通过getResultSet()方法获取结果;
     当第一个执行结果是更新语句或DDL语句时,返回false,可以通过getUpdateCount()获取更新的记录条数   

(3int executeUpdate(String sql)

    执行update, insert, delete语句,返回的是执行后收到影响的记录数(int)
    对于create table或者drop table等不操作行的DDL语句,返回值总为04)Statement调用都需要传入sql,PrepareStatement调用不用传入sql,因为conn的get时候已经传入了预编译的sql
5) ResultSet中的方法
1boolean resultSet.next()                           放入循环里面,表示是否有下一个对象,是否还有对象

(2String s = resultSet.getString(columnIndex)        获取某个字段的值,各种基本数据类型的方法不一样,但是都大同小异
6)PrepareStatement特有方法
1void ptmt.setString(parameterIndex, x);            第一参数占位符的位置,第二个参数要填值,各种基本数据类型的方法不一样,但是都大同小异        

参考网址

通过JDBC进行简单的增删改查(以MySQL为例

深入浅出JDBC-快速入门

注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考,也有可能是大部分参考,但绝对不是直接转载,觉得侵权了我会删,我只是把这个用于自己的笔记,顺便整理下知识的同时,能帮到一部分人。
ps : 有错误的还望各位大佬指正,小弟不胜感激

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值