Log4j 由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
第十六周
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 数据库设计:a) 降低关联的复杂性、b) 尽量不使用联合主键、c) ID的生成机制,不同的数据库所提供的机制并不完全一样、d) 适当的冗余数据,不过分追求高范式
2、 HQL优化:HQL如果抛开它同HIBERNATE本身一些缓存机制的关联,HQL的优化技巧同普通的SQL优化技巧一样,可以很容易在网上找到一些经验之谈。
加载策略:延迟加载vs立即加载、-延迟加载(默认) 不会立即命中数据库,使用数据时命中、在可以改变为立即、*使用数据必须在session关闭之前、-立即加载:立即命中数据库,不管有没有数据
抓取策略、查询抓取:(N+1)、连接抓取:需要在关联的对象中设臵fetch="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的轻易级封闭,内存消耗少,最快的运行效率。、开发效率高,Eclipse、JBuilder等主流 JAVA集成开发环境对Hibernate有很好的支持,在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人。分布式,安全检查,集群,负载均衡的支持。轻量级封装,避免引入过多复杂的问题,调试容易,也减轻程序员的负担。具有可扩展性,API开放,当本身功能不够用的时候,可以自己遍码进行扩展。对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
总结:通过hibernate连接,发现比以前用JDBC连接的代码量要少很多,简洁很多。唯一不好的是在XML的配臵文件中,经常会有错误。我相信,这只是我对hibernate不熟悉造成的,当对hibernate使用多了,这些问题就迎刃而解。
第十八周
在之前的项目基础上,实现以下功能:
系统可以分为不同权限的管理员,管理本系统,如商品管理员、系统管理员等。
系统管理员可以配臵一些信息管理本系统。
系统可以管理商品(添加、删除、修改、查询)。
系统可以管理商品分类(添加、删除、修改、查询)。
系统可以管理品牌(添加、删除、修改、查询)。
系统可以管理论坛,根据商品分类创建论坛分类。自定义分类等。
系统可以的论坛管理功能等,此处不再详细累赘。
系统可以进行订单管理功能。