Java和数据库:JDBC入门

概述

JDBC(Java Database Connectivity)是连接数据库和Java程序的桥梁,说白了就是专门用来让Java程序操控数据库的工具,有了JDBC我们就可以通过Java语言向数据库发送SQL语句,同时可以把java程序中要长期保存的数据存到数据库中。 

事实上,我们会碰到的主流数据库有好多,像MySQL、SQL Server、Oracle、Access等,为了使Java程序能够适应不同的数据库,SUN公司为数据库厂商定义了统一的规范——JDBC,也就是说JDBC里面包含了一些接口,让可以实现连接Java和DB的数据库厂商实现这些接口。那些实现/继承了JDBC中的接口,可以实现让Java程序操控自己的数据库的一些类/子接口,打包成jar包,我们把这样的jar包称为驱动(Driver)。

核心类/接口

<类>DriverManager

作用:

        1. 注册驱动,可以让JDBC知道要用的是那种数据库

        2. 新建连接,调用getConnection()的静态函数来新建连接对象

 <接口>Connection

作用:

        我们在学习MySQL的时候就已经知道操控数据库都是在连接的基础之上,这里也不例外,所有的数据库操作都是通过数据库的连接对象展开的。Connection有一个核心方法就是createStatement()来创建Statement对象

<接口>Statement

作用:

        通知数据库执行SQL语句,根据SQL语句对数据执行的不同操作,Statement提供了不同的方法

        1. 更新操作:int executeUpdate(String sql)通过传进来的SQL语句,对数据库的数据进行增删改操作,返回表中受影响行数;该方法还可以用来对表进行增删改,但一般用不到。

        2. 查询操作:ResultSet executeQuery(String sql)通过传进来的SQL语句,对数据库的表进行查询操作,返回的是结果集。

<接口>ResultSet

作用:

           存储查询之后的结果,结果集是一个二维表,里面有一个行光标,这种类似于迭代器,我们可以通过ResultSet提供的方法自由移动光标和读取数据,篇幅关系这里就不展示ResultSet所包含的方法了。

Java-MySQL数据类型映射

Java和数据库的数据类型有些不同,这里列出了部分常用数据类型的映射

MySQLJava

所有整数类型

(tinyint、smallint、int等)

int

所有浮点数类型

(double、float、numeric)

double、decimal

所有字符串类型

(char、varchar等)

String

JDBC用法

1. 拷贝jar包

数据库厂商为了能让Java程序可以连接到自己品牌的数据库,提供了数据库驱动,所以在使用JDBC前要将jar包搞到Java项目里面,放到直属于项目的lib目录下,没有lib目录就自己造一个。

2. 加载数据库驱动

Class.forName("数据库驱动类全名");

以MySQL 为例:Class.forName("com.mysql.jdbc.Driver");

3. 建立连接

String url = "..."; String username = "..."; String pwd = "......";

Connection con = DriverManager.getConnection(url, username, pwd);

url是数据库的地址,MySQL的url格式为jdbc:mysql://数据库的IP地址:端口号/数据库名

localhost代表本机的IP地址

本地数据库url可以写成jdbc:mysql://localhost:3306/db_something

4. 获取Statement对象

Statement st = con.createStatement();

可以通过Statement对象的executeXXX(sql语句)的方法通知数据库对数据进行操作

5. 通知数据库执行操作

int lines = st.executeUpdate("增删改的SQL语句");

ResultSet rs = st.executeQuery("查询的SQL语句");

6. 操作结果集(前提是已经查询过数据库了)

7. 关闭资源

资源的打开和关闭类似于栈的结构,关闭资源时要倒序关闭

这里是先关闭结果集,再关闭Statement,最后断开数据库连接,完结撒花~

rs.close();

st.close();

con.close();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值