JDBC与数据库总结-01

本文介绍了Java数据库连接(JDBC)的基本概念与操作步骤,并详细解释了如何利用JDBC连接Oracle数据库,包括注册驱动、获得连接、执行SQL语句及处理结果集等内容。此外,还探讨了Oracle数据库的特点、数据类型及常用SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天又在学oracle了,所以借着这个机会把前面学过的JDBC的东西结合这两天学习oracle的东西放一起总结一下。

 JDBC:Java DataBase Connection,它就是一套api,由sun公司定义的类或接口,然后由每个数据库厂商来提供实现。这样就消除了不同数据库之间操作的差异。

 而JDBC操作数据库的步骤:

 1、注册驱动:注册驱动有两种方式;

(1)、 DriverManager.registerDriver(new Driver());

但这种方式会注册两次驱动,这是因为Driver类中的静态块会注册一次驱动。

(2)、Class.forName(驱动类的全路径类名);

mysql的类名是:com.mysql.jdbc.Driver;

Oracle的类名是:oracle.jdbc.driver.OracleDriver

  2、获得连接:

  Connection DriverManager.getConnection(String url,String user,String pass);

 这里url是指连接数据库的url:

 mysql:jdbc:mysql://ip地址:3306/表名

  oracle:jdbc:oracle:thin:@ip地址:1521:表名

  user 指连接数据库的用户名,pass指连接数据库的密码;

3、获得语句执行平台

 Statement createStatement();

  然后就可以执行sql了。但这种方式会有sql注入攻击,所以一般我们都会把SQL先预处理一下然后再执行。

 PreparedStatement prepareStatement();

  然后再执行就不会有sql注入攻击了。

4、处理结果:

 在做查询操作时,结果返回时一个ResultSet对象,那么我们想要看到结果集中的对象,可以使用while遍历它。

而实际上我们基本上都是使用数据库连接池来获取连接的,常用的数据库连接池有DBCP,C3P0

DBCP:是Apache组织提供的一种数据库连接池,由于我们对连接池的配置一般都会放到配置文件(properties文件)中,然后通过读取配置文件中配置就可以连接数据库了。 

 C3P0:也是同样的将连接数据库的配置放到配置文件(c3p0-config.xml)之后,就可以直接使用了。

同时我们还会使用到一个工具类,同样也是Apache提供的:DbUtils。它里面的功能主要有三个方面。 

 1、获得元数据

DatabaseMetaData :获得数据库连接的信息,获得数据库表的信息
获得数据库元数据:DatabaseMetaData Connection.getMetaData();
ParameterMetaData:获得sql中参数的个数及类型
获得参数元数据:
ParameterMetaData PreparedStatement.getparameterMetaData();
ResultSetMetaData:获得结果集中的列名及列的类型
获得结果集元数据:ResultSetMetaData ResultSet.getMetaData();
 2、QueryRunner,这个使用的次数很多,并且也很简单。  
int update(Connection con,String sql,Object...params) 执行增删改
<T> T query(Connection con,String sql,ResultSetHandler<T> rsh,Object ...prams) 执 行查询

 3、结果集处理器,一共有8种

 ResultSetHandler<T> 处理结果集
 ArrayHandler 将结果集的第一行转换为一个数组
 ArrayListHandler 把行的对象数组放到List集合中
 BeanHandler(Class <T>T) 将结果集的第一行转换为一个JavaBean对象
 MapHandler 将结果集的第一行封装到集合中
 MapListHandler 将结果集每一行存储到Map集合,再将每个Map集合放到List集合
 ColumnListHandler(列名) 将结果集中的指定列放到集合中
 ScalarHandler 处理结果集中只有一个数据

  然后DbUtils中还有一些关闭的方法,这些方法是将连接返还给连接池,而不是关闭。

ok,接下来我们总结一下,ORACLE的东西,因为这两天我正在学这个,所以就学一点写一点吧:ORACLE数据库呢是目前最牛*的数据库。也是一种关系型的数据库,并且它也支持分布式存储。它的特点主要有以下几种:

1、支持多用户,大事务量的事务处理 2、数据的安全性和完整性控制  3、支持分布式数据处理  4、跨平台。

它和mysql很明显的区别就是,mysql在登录后可以在一个用户名下创建很多的数据库,而oracle则只能创建一个数据库。

 至于它的逻辑结构就不说了,百度都有的。

 数据类型:

  字符型:char 固定长度,最大2000       varchar2:可变长      Long:大文本类型,最大2g

   数值型:        number(位数)     number(位数,小数位)

  日期型:     date:最小为秒,并且支持运算     timestamp:秒的小数点后9位

 二进制:(大数据类型)   clob:字符,最大4g blob:用来存储图像,声音,视频等二进制数据

  而其他的SQL语句,建表,修改表字段,插入数据,修改数据,删除等都与mysql一致。  oracle中创建用户的语句是:

 create user 用户名 创建用户
 identified by 密码 定义密码
 default tablespace 表空间名 将用户指定到表空间给用户赋权的语句是:       grant dba(权限) to 用户名,这里oracle权限的学问好大,就不细写了。

 ok,Oracle的东西还真多啊,那这个先写到这,在其他里面再慢慢写吧。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值