数据库访问专家
要想使我们的程序更高较的访问数据库,那在写SQL语句时就要格外谨慎。不同数据库SQL语句的写法也略有不同。想要针对不同的数据库写出同样高性能的SQL语句是非常困难的事情。Hibernate可以帮我们做到这一点。有了它,我们不再需要SQL,更不需要专门针对某种数据库写SQL语句,只需在配置文件里配置一下即可。剩下的事情Hibernate会自动帮我们完成,它会根据不同的数据库生成高效的SQL语句。就好象JDBC专家一样。当然,这只是它的一方面好处。
是数据也是对象
“一切事物均为对象”。这是OO世界的口号。这是在学习OO编程时的第一课,于是,我们懂得了OO带来的好处。但是,在数据库的世界中,关系型数据库依然傲视群雄,依然是主角。不管我们用哪种面向对象的语言编程,只要跟关系型数据库打交道,必然会在程序中参杂关系的概念进来。怎样才能使我们真正面向对象呢?Hibernate。它将JDBC层封装起来了,我们将不再针对JDBC进行工作。在程序中,你将找不到SQL语句。而你所看到的一切,均为对象。
配置文件
要想使用Hibernate,就必须告诉Hibernate“你将帮我访问的数据库是XXX,我希望你使用XXX的形式访问等等”。配置文件的作用就是告诉Hibernate这些信息。Hibernate配置文件可以有两种格式,一种是 hibernate.properties ,另一种是 hibernate.cfg.xml 。两种的配置项都是一样的。可以在Hibernate的src目录下找到 hibernate.properties 模板,里面有已经写好了各种配置,我们只需在其中改改即可。
数据库信息的配置:
hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class org.gjt.mm.mysql.Driver ##驱动
hibernate.connection.url jdbc:mysql:///sports ##数据库名
hibernate.connection.username admin ##用户名
hibernate.connection.password 123 ##密码
数据库连接池参数:
hibernate.connection.pool_size 1
hibernate.statement_cache.size 25
Hibernate的CRUD性能配置:
hibernate.jdbc.fetch_size 50
hibernate.jdbc.batch_size 25
设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。当然Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。
Batch Size是设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,有点相当于设置Buffer缓冲区大小的意思。Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。