hibernate3
hibernate3
(整合到spring中的core核心配置中的hibernate3)
<!-- 基于hibernate的Session工厂 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!-- 数据源,在这里使用了第三方的连接池当做数据源 ,该参考类要实现了sql.dateSource接口 -->
<property name="dataSource" ref="dbcp_dateSource">
</property>
<!-- 将hibernate的设置参数引入Spring配置,如此就不用单独设置hibernate配置文件 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
</props>
</property>
<!-- 要扫描的包,导入包内注解好映射的实体类 -->
<property name="packagesToScan" value="com.twogold.dto"></property>
</bean>
1.创建实体类,在实体类中注解每一项属性,并对对应关系进行描述(一对一,一对多,多对多)。
2.根据业务接口层中的方法给出dao层接口。
3.实现dao层接口中的方法,通过
@Repository(value=“projectDao”)
(这是为这一个实现类取名字,以便后面注解根据名字调用);然后在接口实现类中聚合一个
@Resource(name="sessionFactory")
priavte SessionFactory sf;(这样就能得到session工厂。(但是为了提高session的利用率 就通过sf.getCrrentSession()这样每次都用的是当前的session,避免了每次都得到一个
新session)
4.封装业务逻辑层接口;
5.给出业务逻辑层接口的实现,
接口实现类中的注解
(类外注解)
@Service()
@Transactional(propagation=propagation.REQUIRED)(事务注解)
(类中聚合一个dao层接口)
(类内注解)
@Resource(name=“projectDao”)(这那么是dao层事项类中为类开始取的名字,如果么有取名字,那么就该和实现类的名字一样。)
priavet IProjectDao dao;
6.前后台之间中央控制类,该类对前台页面的请求调用对应的方法;
(类外注解)
@Controller
(类内注解)
@Resource
private IProjectservice service;(聚合业务逻辑接口类)
@Resource(name=“systemParameSetting”)
private ISysParSettingService sss;
@RequestMapping(value=“{id}/view”)
//@RequestBody 返回一个json格式的数据
public String viewProject(
@PathVariable("id") int id,({id}大括号用@PathVariable方法参数)
HttpServletRequest req
){
Project project = service.getProjectById(id);
//return 吧对象转为json对象
req.setAttribute("project", project);
return "projectDeclare/view";
@RequestMapping("/update")
public String update(
@ModelAttribute Project p,
HttpServletRequest req
){
service.updateProject(p);
return null;
}
@RequestMapping("/year")
public String getYear(
@RequestParam(value="areaId", defaultValue="2") int areaId,(为参数指定默认值和类型)
HttpServletRequest req
){
List<String> year=service.findYear(areaId);
req.setAttribute("year",year);
return "projectDeclare/reqquisition_collect_list";
}
@RequestMapping("/{id}/update")
public String updateProject(
@PathVariable("id") int id,
@RequestParam("assistanceFinancing") String af,(应该是前台传过来时的name)
@RequestParam("otherFinancing") String of,
@RequestParam("selfFinancing") String cf,
HttpServletRequest req
){
int iaf = new Integer(af);
int iof = new Integer(of);
int icf = new Integer(cf);
int totil = iaf + iof+ icf;
Project p = service.getProjectById(id);
p.setAssistanceFinancing(iaf);
p.setOtherFinancing(iof);
p.setSelfFinancing(icf);
p.setTotal(totil);
service.updateProject(p);
return "redirect:/1/check";
}
hibernate3的更多相关文章
- SSH整合(struts2.3.24+hibernate3.6.10+spring4.3.2+mysql5.5+myeclipse8.5+tomcat6+jdk1.6)
终于开始了ssh的整合,虽然现在比较推崇的是,ssm(springmvc+spring+mybatis)这种框架搭配确实比ssh有吸引力,因为一方面springmvc本身就是遵循spring标准,所以 ...
- Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider停住了
2015.1.24进行了服务器的搬家,搬家后,更换了新的IP,导致新的IP访问以前IP的数据库服务无法成功Initializing connection provider: org.springfra ...
- SSH:Struts2.2+Hibernate3.6+Spring3.1分页示例[转]
参考资料 1 ssh分页(多个例子) http://useryouyou.iteye.com/blog/593954 2 ssh2分页例子 http://459104018-qq-com.iteye. ...
- Hibernate3 和Hibernate4 在配置文件上的区别
在使用hibernate之前要首先对hibernate进行一些基础的配置信息,像映射文件XXX.hbm.xml XXX代表当前的domain的模型类名 <?xml version=" ...
- Hibernate3注解[转]
Hibernate3注解 收藏 1.@Entity(name="EntityName") 必须,name为可选,对应数据库中一的个表 2.@Table(name="&qu ...
- Hibernate3.3.2 手动配置annotation环境
简单记录Hibernate3.3.2如何快速配置环境 一.下载hibernate-distribution-3.3.2.GA-dist.zip文件,建立User libraries. 打开window ...
- ExtJs、Struts2、Hibernate3.2登录页面的简单实现
1.思想的大致模型 2.建立数据库test和数据库表tb_user 1 CREATEDATABASE `test`; 2 CREATETABLE `test`.`tb_user` ( 3 `user ...
- Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
一.缘由 上一篇文章Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法介绍到了怎么样在Sping.MyBatis.Hibernate整合的应用中动 ...
- Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
一.开篇 这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能.所以在出来数据库方言的时候基 ...
随机推荐
- 分割超大Redis数据库例子
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/124.html?1455853509 薄荷 App 上的伙伴功能大量使用了 ...
- fir.im Weekly - 除了写代码,还需要了解什么
雾霾天,宜撸代码.吹牛,不宜出门约会(¬_¬)ノ 本期 fir.im Weekly 亦如往期,收集了优秀的 iOS/Android 开发资源,GitHub 源码.前端方面的热点分享.除了代码,也许你 ...
- Android笔记——探究活动
1.活动是什么 活动(Activity)是最容易吸引到用户的地方了,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一个应用程序中可以包含零个或多个活动,但不包含任何活动的应用程序 ...
- Findbugs介绍及使用方法
1. 简介 Findbugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.利用这个工具,就可以在不实际运行程序的情况对软件进行分析.它可以帮助改 ...
- StringUtils 的用法
1.public static boolean isEmpty(String str) 判断某字符串是否为empty,标准是 null == str 或 str.length() == 0 2.pub ...
- 通过Class获取标签,兼容的几种思路
在js中通过document.getElementsByClassName()在低版本IE浏览器中不兼容.然后我写了几种方案,大家可以参考参考. html代码 <!DOCTYPE html> ...
- KendoUI系列:MultiSelect
1.基本使用 1>.创建Input <link href="@Url.Content("~/Content/kendo/2014.1.318/kendo.common. ...
- linux-redis
1.下载 6.启动 ./redis-server ../conf/redis.conf 7.测试 ./redis-cli -p 7030 set str "hello" ./red ...
- Open Cascade DataExchange IGES
Open Cascade DataExchange IGES eryar@163.com 摘要Abstract:本文结合OpenCascade和Initial Graphics Exchange Sp ...
- Android入门(四)UI-创建自定义控件
原文链接:http://www.orlion.ga/441/ 一.引入布局 iphone应用顶部会有一个标题栏,我们可以模仿着做一个,但是如果我们的程序中很多个活动都需要这样的标题栏,如果 每一个活动 ...