博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net转Java自学之路—SSH框架篇一
阅读量:6766 次
发布时间:2019-06-26

本文共 2822 字,大约阅读时间需要 9 分钟。

SSH框架:

  Struts2(web层)、Spring(service层)、Hibernate(dao层)整合。

  ssh框架整合式两两整合,就是Struts2与Spring整合、Spring与Hibernate整合。

  Struts2与Spring整合:

    就是把struts2的action对象创建交给spring进行管理。因为action是多实例的,所以需要加scope。

    所以在struts2的配置文件中配置该action的action标签中的class不需要action的全路径,若录入了action全路径,action对象会被创建俩次,在该class的属性值中录入spring配置的action的bean的id值。该书写方法的前提是必须引入struts2和spring的整合jar包:struts2-spring-plugin.jar

  Spring与Hibernate整合:

    就是把Hibernate中的核心配置文件中的数据库配置交给Spring配置文件中。

    在Hibernate中一致存在第一次访问速度慢的问题,因为第一次访问时创建SessionFactory对象。而在Spring中,只需要把SessionFactory对象创建交给spring管理即可。

    因为Spring配置文件在服务器启动时就会加载,所以就是在服务器启动时创建SessionFactory对象。来解决hibernate第一次访问很慢的问题。

    针对Spring配置SessionFactory对象。Spring有一个封装的类LocalSessionFactoryBean,创建该类LocalSessionFactoryBean的对象即可。

true
true
update
org.hibernate.dialect.MySQLDiealect
映射文件路径
映射文件路径
......

  DAO层中使用HibernateTemplate模板类:

public class TestDao{        private HibernateTemplate hibernateTemplate;    public void setHibernateTemplate(HibernateTemplate hibernateTemplate){        this.hibernateTemplate=hibernateTemplate;    }        public void method(){            }}

    在Spring配置文件中创建HibernateTemplate对象并注入SessionFactory对象

    在service层调用了TestDao类,那么需要配置该类的对象;该对象需要注入HibernateTemplate对象。否则在该类中用hibernateTemplate对象做crud操作时会报空指针异常(NullPointerException)。

    然后配置事务,先配置事务管理器HibernateTransactionManager,并注入SessionFactory(因为在配置SessionFactory时已经包含了dataSource,直接注入dataSource也可以)

    在用到事务的service类中加上@Transactional

    HibernateTemplate模板中常用API:

//Serializable save(Object entity);    public void add(){        Test test=new Test();        test.setXXX("");        test.setXXX("");        ......        hibernateTemplate.save(test);    }//void update(Object entity);//void delete(Object entity);//
T get(Class
entityClass,Serializable id); Test test = hibernateTemplate.get(Test.class,1);//
T load(Class
entityClass,Serializable id);//List find(String queryString,Object... values); List
list = (List
)hibernateTemplate.find("from Test"); List
list = (List
)hibernateTemplate.find("from Test where column=? and column=?","?的值","?的值"); for(Test test:list){遍历}

  Spring分模块开发:

 

转载于:https://www.cnblogs.com/zltao/p/10527315.html

你可能感兴趣的文章
常微分方程
查看>>
ArcSDE空间数据库中SDE用户使用探讨 (转载)
查看>>
cmd net use
查看>>
docker 7 docker的帮助命令
查看>>
set .net principle
查看>>
Map统计数组的相同字符的总数
查看>>
Android学习小记-----拦截电话/拒接电话,规避拒接电话前响一声或者两声的问题...
查看>>
iphone 如何发布应用程序
查看>>
ABAP JSON转换
查看>>
mac 下获取 os x 的系统版本,使用 oc cocoa
查看>>
12.1动态内存与智能指针
查看>>
Java面试题(1)
查看>>
控制反转,依赖注入
查看>>
C语言之位运算
查看>>
Windows 为右键菜单瘦身
查看>>
python 反人类函数式编程模拟while和if控制流
查看>>
pstack.sh 查看进程堆栈
查看>>
【转】ASP.NET MVC 入门教程列表
查看>>
[转载] 七龙珠第一部——第071话 决死流血战
查看>>
算法——递推算法(顺推、逆推)
查看>>