这两天又在学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,C3P0DBCP:是Apache组织提供的一种数据库连接池,由于我们对连接池的配置一般都会放到配置文件(properties文件)中,然后通过读取配置文件中配置就可以连接数据库了。
C3P0:也是同样的将连接数据库的配置放到配置文件(c3p0-config.xml)之后,就可以直接使用了。
同时我们还会使用到一个工具类,同样也是Apache提供的:DbUtils。它里面的功能主要有三个方面。
1、获得元数据
3、结果集处理器,一共有8种
然后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中创建用户的语句是:
ok,Oracle的东西还真多啊,那这个先写到这,在其他里面再慢慢写吧。。。