Hibernate学习(2)---JDBC

转载 2015年07月07日 00:19:32
JDBC(Java Data Base Connectivity  java 数据库连接)是一种用于执行SQL语句的JAVA API
 可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。
 

 JDBC 可以做三件事情:与数据库建立连接、发送操作数库的语句并处理结果。

常用语句如下

Class.forName("com.mysql.jdbc.Driver");  

 Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login",
"password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");

}


Statement和PreparedStatement:

Statement接口代表一个数据库的状态,在向数据库发送相应的SQL语句时候都要用这两个接口。而statement是操作没有参数的sql语句,而preparedStatement即可以操作有参数的,也可以操作没有参数的,所以preparedStatement避免了sql注入问题。



PreparedStatement替换Statement,即用占位符作为实参定义sql语句,从而避免sql注入攻击。
//若将pwd的值定义为:ddd' or '1'='1   
            //通过preparedStatement预编译后,执行的SQL语句将是:  
            //select * from t_u where name = 'zs'   
            // and pwd ='ddd\' or \'1\'=\'1'  
              
             /**实现机制不同,注入只对sql语句的准备(编译?)过程有破坏作用 
                而ps已经准备好了,执行阶段只是把输入串作为数据处理,不再 
                需要对sql语句进行解析,准备,因此也就避免了sql注入问题.
 
                 
                *PreparedStatement可以在传入sql后,执行语句前,给参数赋值, 
                *避免了因普通的拼接sql字符串语句所带来的安全问题,而且准备sql 
                *和执行sql是在两个语句里面完成的,也提高了语句执行的效率 
                */  
            ResultSet rst= prep.executeQuery();  
              
            System.out.println("rst: "+rst);  
            //System.out.println("rst: "+rst.getStatement());  
            //判断结果集rs是否有记录,并且将指针后移一位  

            //因为前面的select语句是限定的条件,只有满足了条件才能有记录产生  


参看连接:http://blog.csdn.net/lfsf802/article/details/7378053

                   http://baike.haosou.com/doc/2417290-2555569.html

 

Hibernate:入门及与JDBC优劣比较

JDBC优点        直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。支持连接池。 JDBC缺点        因为JAVA是面向...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年12月01日 09:07
  • 1487

简述hibernate和jdbc的区别 优缺点

JDBC与Hibernate在性能上相比,JDBC灵活性有优势。而Hibernate在易学性,易用性上有些优势。当用到很多复杂的多表联查和复杂的数据库操作时,JDBC有优势。 相同点: ◆两者都是...
  • CNZYYH
  • CNZYYH
  • 2016年12月22日 14:15
  • 2542

Hibernate原理,与JDBC比较

Hibernate是一个持久化框架。 那什么是持久化呢?我们先来理解下瞬间状态,保存在内存中的程序数据在程序退出后数据就消失了,这就称之为瞬间状态。而持久状态是我们保存在了磁盘上,就成为程序数据的持...
  • sunhuwh
  • sunhuwh
  • 2013年01月04日 23:26
  • 4157

在 Hibernate 中直接操作 JDBC 接口

在 Hibernate 框架中提供直接操作 JDBC 接口的原因 Hibernate 框架在处理复杂查询方面的问题 Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC ...
  • yibailiheng
  • yibailiheng
  • 2016年12月29日 09:41
  • 499

分析hibernate与jdbC的优缺点

hibernate和jdbC都是操作数据库的框架,那么既然有了jdbC,为什么又要学习hibernate呢? 首先我们先来了解一下它们各自的优缺点。 jdbC: 缺点: 1、查询语句比较繁琐 ...
  • andy_px
  • andy_px
  • 2015年09月01日 17:04
  • 1626

总结传统JDBC以及MyBatis和Hibernate的对比

首先,让我们回顾一下。在上一个博客中写道“使用传统的JDBC编程来操作数据”,详见http://blog.csdn.net/zwg_html/article/details/55668894让我们来总...
  • zwg_html
  • zwg_html
  • 2017年02月20日 21:17
  • 1735

Hibernate(二)hibernate原理简单实现对比JDBC

hibernate作为orm模型的实现的一种,是java的对象模型和关系模型之间的桥梁,主要通过jdbc的封装 来达到操作数据库的目的,提供了一套相对全面的自动化的api。简单模拟一下hibern...
  • chenfanglincfl
  • chenfanglincfl
  • 2015年01月21日 01:14
  • 2333

Mybatis与传统jdbc和Hibernate的比较

原生态的jdbc的存在的问题: 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 ...
  • qq_25673113
  • qq_25673113
  • 2016年12月08日 22:36
  • 714

仿照hibernate封装的一个对数据库操作的jdbc工具类

package project02_Order_management.dao; import java.lang.reflect.Field; import java.lang.reflect.In...
  • u011936142
  • u011936142
  • 2014年04月26日 14:46
  • 2285

Hibernate 简单使用(二) JDBC封装

上一篇介绍了Hibernate框架的搭建与简单使用~ 这一次就介绍一下代码的封装~ 上一篇Test类中,我贴下代码: public class Test { public static void ...
  • qq_33642117
  • qq_33642117
  • 2016年07月13日 11:59
  • 419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate学习(2)---JDBC
举报原因:
原因补充:

(最多只允许输入30个字)