第一周
xml:概念:可扩展的标记语言、优点:结构化,平台、语言无关,标准的
xml读写xml格式的文档,完成数据交换、声明:大多数xml文档以xml声明作为开始、建议使用xml声明,但它不是必需的。如果有,它一定是文档的第一行内容。、注释、实体:不能直接表示的符号、五个实体、自定义实体、CDATA:一段文本,不会被解析器解析。
Log4j:是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
第二周
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用E的J2EE架构中取代CMP,完成数据持久化的重任。数据库设计:a)降低关联的复杂性、b)尽量不使用联合主键、c)ID的生成机制,不同的数据库所提供的机制并不完全一样、d)适当的冗余数据,不过分追求高范式
2、HQL优化:HQL如果抛开它同HIBERNATE本身一些缓存机制的关联,HQL的优化技巧同普通的SQL优化技巧一样,可以很容易在网上找到一些经验之谈。
加载策略:延迟加载vs立即加载、-延迟加载(默认)不会立即命中数据库,使用数据时命中、在可以改变为立即、*使用数据必须在session关闭之前、-立即加载:立即命中数据库,不管有没有数据
抓取策略、查询抓取:(N+1)、连接抓取:需要在关联的对象中设Zfetch=select|join、N+1与1+M:-针对一端,如果查询有m个对象,这时会先发送1条sql语句查出m个对象,然后再发送m条sql语句查关联对象,这就是1+M、-针对多端,如果查询有n个对象,那么对每个对象需要重新发送一条sql语句,这就是n+1。
事务控制:事务方面对性能有影响的主要包括:事务方式的选用,事务隔离级别以及锁的选用a)事务方式选用:如果不涉及多个事务管理器事务的话,不需要使用JTA,只有JDBC的事务控制就可以。b)事务隔离级别:参见标准的SQL事务隔离级别c)锁的选用:共享锁、独占锁、更新锁、死锁、悲观锁、乐观锁。
第三周
前面做过的新豆商城,使用JDBC来连接数据库,现在学习了Hibernate,所以把所有连接数据库的代码转变成hibernate来连接。
为什么选择Hibernate:由于是对JDBC的轻易级封闭,内存消耗少,最快的运行效率。、开发效率高,Eclipser等主流JAVA集成开发环境对Hibernate有很好的支持,在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人。分布式,安全检查,集群,负载均衡的支持。轻量级封装,避免引入过多复杂的问题,调试容易,也减轻程序员的负担。具有可扩展性,API开放,当本身功能不够用的时候,可以自己遍码进行扩展。对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
总结:通过hibernate连接,发现比以前用JDBC连接的代码量要少很多,简洁很多。唯一不好的是在xml的配Z文件中,经常会有错误。我相信,这只是我对hibernate不熟悉造成的,当对hibernate使用多了,这些问题就迎刃而解。
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,请联系我们删除。