关于JAVA连接ORACLE以及使用的相关知识
来源:互联网 发布:手机淘宝怎么合并付款 编辑:程序博客网 时间:2024/04/28 20:49
JAVA中很多情况下都会使用到数据库,而现在主流数据库中ORACLE是使用较多的,故整理下JAVA对ORACLE的使用相关的知识。
一、注册数据源
首先需要加载数据库驱动,然后根据数据源、用户名&密码获取数据库连接(Connection实例);接下来就可以使用获取到的连接对数据库进行一系列的操作了。实现代码如下:
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password);
二、操作数据库
在使用数据库连接操作数据库的时候需要注意的是俩个对象:Statement和PreparedStatement,下面对这俩货的使用方法进行下总结。
Statement的使用方式:
Statement stmt = null;stmt = conn.createStatement();String strSql = "delete from table";stmt.executeUpdate(strSql);
如果要需要传入参数而且不想写到String对象中也可以使用SingleStatement
Statement stmt = conn.createStatement();String strSql = "delete from table";SingleStatement ssmt = new SingleStatement(strSql);ssmt.setString(1, para);stmt.executeUpdate(ssmt.toString());
PreparedStatement的使用方式:
String updateSql = "update COORD_LINE set x =?,y=? where LINENAME =? AND FILETYPE =? AND USER_ID=? AND REC_DATE=?";PreparedStatement ptmt = conn.prepareStatement(updateSql);ptmt.setString(1, para);dbs.executeUpdate(conn, ptmt);
关于这两个类的区别,主要在于两方面:
一)执行效率
PreparedStatement对象在执行之前会进行预编译,每一种数据库都会对预编译语句提供最大的性能调优,因为预编译语句有可能被重复调用,所以语句在被数据库的编译器变异后的执行代码被缓存了下来,那么下次使用相同的预编译语句调用的时候只要将参数直接传入到编译过的语句执行代码中就可以了。而Statement则不一样,没有数据库会对普通语句编译后的执行代码缓存
二)安全性
预编译语句决定了传入的任何内容不会和原来的语句发生任何匹配关系,这可以防止一些恶意的SQL语句的出现,例如下面这种情况:
String sql = "select * from tb_name where name="+varname+"and passwd="+varpasswd
这种情况下如果传入的varpasswd参数为['or'1'='1]则上述语句会变成以下模样:
select * from tb_name where name= "name" and passwd = '' or '1'='1';
- 关于JAVA连接ORACLE以及使用的相关知识
- 关于 oracle 归档开启以及使用的相关知识
- 关于Hashcode以及相关知识
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 关于stack 以及相关的寄存器的知识(x86 结构)
- oracle的相关知识
- java连接oracle数据库以及相关数据库操作
- oracle死锁的相关知识
- web中使用到的一些关于坐标相关知识
- 关于java中类的相关知识(部分)
- Java关于JIT的原理和相关知识
- 关于GTK的相关知识
- iOS 持久化
- springmvc拦击器
- 动态库使用实例:dlopen
- qtopia
- linux系统的文件挂载
- 关于JAVA连接ORACLE以及使用的相关知识
- 2012年十大最囧品牌
- httpd jk_module模块 配置
- win7中SQLServer2008安装报未安装.Net Framework 3.5的解决办法
- CFileDialog打开多个文件失败
- JavaScript 关闭浏览器进行提示
- Codeforces Round #126 (Div. 2)——B
- 一个文件有N个单词,每行一个,其中一个单词出现的次数大于N/2,怎么样才能快速找出这个单词?
- 页面后退时表单页面回跳