数据库—3.JDBC

本文详细介绍了JDBC的发展历史、使用步骤以及核心组件,包括DriverManager、Connection、Statement和ResultSet。讲解了工厂方法设计模式在JDBC中的应用,并探讨了JDBC中的SQL注入问题及解决方案,如使用PreparedStatement。此外,还涵盖了事务的处理方式、批处理操作以及连接池的使用,如DBCP和Druid。
摘要由CSDN通过智能技术生成

使用JDBC需要加载对应数据库的jar文件(mysql)

简介

Java DataBase Connectivity Java数据库连接

我们学习的技术是JDBC 不是 MYSQLJDBC 也不是 ORACLE JDBC JDBC是一套标准,是Java与各大数据库厂商共同定制的一套接口. 这套接口由各大数据库厂商进行了实现

发展历史

       自从Java语言于1995年5月正式公布以来,Java风靡全球。

       出现大量的用java语言编写的程序,其中也包括数据库应用程序。由于没有一个Java语言的数据库操作API,编程人员不得不在Java程序中加入C语言的ODBC函数调用。这就使很多Java的优秀特性无法充分 发挥,比如平台无关性、面向对象特性等。

       随着越来越多的编程人员对Java语言的日益喜爱,越来越多的公司在Java程序开发上投入的精力日益 增加,对java语言接口的访问数据库的API的要求越来越强烈。也由于ODBC的有其不足之处,比如它并不 容易使用,没有面向对象的特性等等,SUN公司决定开发一Java语言为接口的数据库应用程序开发接口。

       在JDK1.x版本中,JDBC只是一个可选部件,到了JDK1.1公布时,SQL类包(也就是JDBCAPI)就成为 Java语言的标准部件。

使用步骤: *

1. 引入jar文件.

2. 加载数据库驱动 (JavaSE项目中可以省略 , JavaWeb项目必须编写此步骤)

  • Class.forName("com.mysql.jdbc.Driver");

3. 通过驱动管理器, 获取JDBC连接对象.

  • Connection conn = DriverManager.getConnection("数据库连接地址","帐号","密码");
  • // 数据库连接地址格式: 主协议:子协议://ip地址:端口号/数据库名称
  • // mysql的连接地址: jdbc:mysql://localhost:3306/java35
  • // oracle的连接地址: jdbc:oracle:thin:@localhost:1521:ORCL

4. 通过连接对象, 创建SQL执行对象 (SQL执行环境)

  • Statement state = conn.createStatement();

5. 通过SQL执行对象 ,执行SQL语句.

  • state.execute(String sql语句);

6. 释放资源

  • state.close();
  • conn.close()
    public static void creatTable() throws ClassNotFoundException, SQLException {
        //1.    加载驱动
        //      mysql6以下驱动:com.mysql.jdbc.Driver
        //      mysql6和6以上驱动:com.mysql.cj.jdbc.Driver
        Class.forName("com.mysql.jdbc.Driver");
        //2.    通过驱动管理器,获取连接对象
        //      连接地址格式:
        //           主协议:子协议://ip地址:端口号/数据库名称
        //           mysql:     jdbc:mysql://localhost:3306/test
        //           oracle:    jdbc:oracle:thin:@ip地址:1521/ORCL
        //           解决乱码:   useUnicode=true&characterEncoding=utf-8
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8", "root", "950621");
        //3.    通过连接对象,创建SQL执行对象
        Statement state = conn.createStatement();
        //4.    通过SQL执行对象,执行SQL
        state.execute("create table person(id int,nickname varchar(30))");
        //5.    释放连接
        state.close();
        conn.close();

    }

 

JDBC中常用的类型与方法

1. DriverManager : 驱动管理器

  • 常用方法:
    • - 获取数据库连接:
  • static Connection getConnection(String 数据库地址,String 账号 ,String 密码)

2. Connection : 数据库连接对象

  • 常用方法:
    • - 创建SQL执行对象: Statement createStatement();

3. Statement : SQL执行对象

  • 常用方法:
    • - 执行SQL语句(查询语句返回true, 其它语句返回false),不代表成功或失败
    • boolean execute(String sql);
  • - 执行DML语句(INSERT UPDATE DELETE) 和 DDL语句(create alter drop)
    • (返回int值, 表示语句对数据库表格的影响行数 !)
    • (通常我们认为 返回值>0 表示执行成功.)
    • int executeUpdate(String sql);
  • - 执行DQL语句 (select)
  • ResultSet executeQuery(String sql);

4. ResultSet : 结果集对象 (指的是一个select语句的查询结果)

  • 常用方法:
    • 1. 控制游标移动的常用方法:
      • - boolean next() ****
        • 作用: 控制游标向下一行移动.
        • 返回值: 移动成功返回true , 下一行不存在移动失败, 返回false
      • - boolean privious() 了解
        • 作用: 控制游标向上一行移动.
        • 返回值: 移动成功返回true , 上一行不存在移动失败, 返回false
      • - boolean absolute(int 行号) 了解
        • 作用: 控制游标向指定行移动
        • 返回值: 移动成功返回true , 行不存在移动失败, 返回false
      • - boolean beforeFirst() 了解
        • 作用: 控制游标移动到第一行
        • 返回值: 移动成功返回true, 没有第一行数据返回false
      • - boolean afterLast() 了解
        • 作用: 控制游标移动到最后一行
        • 返回值: 移动成功返回true, 没有最后一行数据返回false
    • 2. 获取游标指向行的字段值的常用方法:
      • - XXX getXXX(String 列名) ***
        • 根据字段名, 得到此字段的值
      • - XXX getXXX(int 字段的索引) *
        • 根据字段的索引, 得到字段的值 , 索引从1开始
   public static void updateDate() throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Conne
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值