* 本次使用Oracle11g和MySQL5.0作比较,目的是为了整理和巩固所学的数据库知识,也为了加深印象.(本人菜鸟,请大神们多多指教)
<>不同点

* 所占内存不同
* Oracle11g在官网上下载的时候显示大约2g大小的解压包

* 而MySQL5.0版本有windows的安装程序,差不多40m左右

* 所支持的SQL语句略有不同
* Oracle中除了支持标准的SQL语句之外,还定义有Oracle独有的SQL语句,例如日期函数,
* 在Oracle中存在一个日期伪列SYSTDATE,可以通过这个日期伪列列出当前时间
* 要在Oracle中实现emp分页,需要通过子查询的方式实现,大致如下(currentpage表示当前所在页数,linesize表示每页显示数据个数)
SELECT empno,ename,job FROM( SELECT empno,ename,job,ROWNUM rn FROM emp WHERE
ROWNUM<= currentpage*linesize )temp WHERE temp.rn > (currentpage-1)*linesize;


* 而在MySQL中实现要实现分页主需要在查询语句的后面添加一个 limit 关键字即可
* 例如在MySQL中定义有一个news表,如果要实现news表的分页查询在MySQL中的SQL语句大致如下 select * from news
limit 5,10;


* 事务处理不同
* 在Oracle中创建的数据表都可以使用进行事务处理,例如数据回滚,事物提交等等.
*
而在MySQL中有两种引擎,一种是没有进行事物处理的,还有一种是可以进行事物处理的,在MySQL中创建一个数据表的时候在语句后面添加一个engine="innodb"表示可以进行事物处理
DROP TABLE news; CREATE TABLE news( nid BIGINT AUTO_INCREMENT, price DOUBLE,
titleVARCHAR(50), CONSTRAINT pk_nid PRIMARY KEY(nid) )engine="innodb";
<>相同点

* 任何数据库如果要应用到程序之中都需要使用到JDBC技术,而Oracle和MySQL的jdbc操作流程基本一样.
* MySQL在Java程序中的jdbc操作 package mao.shu.jdbc; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.PreparedStatement; import java.
sql.ResultSet; public class MySQLJDBC { //定义mysql数据库的加载程序类 private static final
String DRIVER_MYSQL="org.gjt.mm.mysql.Driver"; //定义jdbc的连接地址 private static
final String DBURL_MYSQL="jdbc:mysql://localhost:3306/mldn"; //定义mysql数据库的用户名
private static final String USER = "root"; //定义连接用户的密码 private static final
String PASSWORD="mysqladmin"; public static void main(String args[])throws
Exception{ //加载数据库驱动程序类 Class.forName(DRIVER_MYSQL); //通过DriverManager类得到数据库连接对象
Connection conn= DriverManager.getConnection(DBURL_MYSQL, USER, PASSWORD);
//定义sql查询语句 String sql ="SELECT nid,price,title FROM news LIMIT ?,?";
PreparedStatement psd= conn.prepareStatement(sql); Long currentPage = 1L; Long
linesize= 5L; psd.setLong(1, (currentPage-1)*linesize); psd.setLong(2, linesize)
; ResultSet rest = psd.executeQuery(); while(rest.next()){ System.out.println(
rest.getLong(1)+" "+rest.getDouble(2)+" "+rest.getString(3)); } //关闭数据库连接 conn.
close(); } }


* 示例:Oracle的jdbc操作 package mao.shu.jdbc; import java.sql.Connection; import
java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.
ResultSet; public class OracleLJDBC { //定义oracle数据库的加载程序类 private static final
String DRIVER_ORACLE="oracle.jdbc.driver.OracleDriver"; //定义jdbc的连接地址 private
static final String DBURL_ORACLE="jdbc:oracle:thin:@localhost:1521:mldn";
//定义oracle数据库的用户名 private static final String USER = "scott"; //定义连接用户的密码
private static final String PASSWORD="tiger"; public static void main(String
args[])throws Exception{ //加载数据库驱动程序类 Class.forName(DRIVER_ORACLE);
//通过DriverManager类得到数据库连接对象 Connection conn = DriverManager.getConnection(
DBURL_ORACLE, USER, PASSWORD); //定义sql查询语句 String sql =" SELECT empno,ename,job
" +" FROM( " +" SELECT empno,ename,job,ROWNUM rn FROM emp WHERE ROWNUM <= ? " +
" )temp " +"WHERE temp.rn > ?"; PreparedStatement psd = conn.prepareStatement(
sql); int currentPage = 1; int linesize = 5; psd.setInt(1, currentPage*linesize)
; psd.setInt(2, (currentPage-1)*linesize); ResultSet rest = psd.executeQuery();
while(rest.next()){ System.out.println(rest.getInt(1)+" "+rest.getString(2)+" "+
rest.getString(3)); } //关闭数据库连接 conn.close(); } }


* 可以发现两个数据库的jdbc操作中除了基本信息外(驱动程序类,连接路径,用户名,密码,sql语句)之外,操作流程都是一样的,这也就是标准的好处.

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信