对于SSh框架的简化,我们可以从下面几个方面来剖析:

1、实体类entity

2.注入

3.类注解

下面,我来一一为大家讲解。ps:写的不好还请多多指教,欢迎大家”来找茬“。

关于实体类的简化,我们一般是将.hbm.xml文件删除,然后配着注解来实现简化,下面我们举一个简单的例子来体验实体类的简化给我们带来的便利

如下:

以前我们需要编写实体类.hbm.xml来完成映射

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="news.entity">
<class name="News" table="news">
<id name="id">
<generator class="increment"/>
</id>
<property name="title" type="string" length="50" column="title" not-null="true"></property>
<property name="content"></property>
<property name="begintime"></property>
<property name="usename"></property>
</class>
</hibernate-mapping>

而现在,我们用了注解就不需要了,代码如下:

package news.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table; /**
* @author Administrator
*
*/
@Entity
@Table(name="news")//这里的name对应的是数据库那边的表名
public class News {
private Integer id;
private String title;
private String content;
private Date begintime;
private String usename; @Id
@GeneratedValue(strategy = GenerationType.AUTO)public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
} @Column
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
} @Column
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
} @Column
public Date getBegintime() {
return begintime;
}
public void setBegintime(Date begintime) {
this.begintime = begintime;
} @Column
public String getUsename() {
return usename;
}
public void setUsename(String usename) {
this.usename = usename;
} }

接下来我们来看注入。

对于注入的简化,我的理解就是不需要new,把它交给spring去完成

而在这之前,我们都是定义一个私有属性,并给他设置set方法,然后在applicationContext.xml中设置如下

<bean id="newsAction" class="news.action.NewsAction">
<property name="ns" ref="myNewsService"/>
</bean>
<bean id="myNewsService"class="news.service.NewsServiceImpl">
<property name="nd" ref="myNewsDao"/>
</bean>
<bean id="myNewsDao" class="news.dao.NewsDaoImpl">
<property name="sf" ref="sessionFactory"></property>
</bean>

然而我们用上注解的话,applicationContext.xml文件就变成了这样

<bean id="newsAction" class="news.action.NewsAction"/>
<bean id="myNewsService"class="news.service.NewsServiceImpl"/>
<bean id="myNewsDao" class="news.dao.NewsDaoImpl"/>

删除完映射文件,我们还需要在applicationContext.xml里面配置,如下:

这样才能知道她找到对应的实体类

当然我们所对应的Action,dao.service类都需要加上注解,如下:

package news.action;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import com.opensymphony.xwork2.ActionSupport; import news.entity.News;
import news.service.NewsService; public class NewsAction extends ActionSupport {
//@Resource(name="myNewsService") 这是jdk自带注解 @Autowired
@Qualifier//这两个是spring的注解
private NewsService ns; private List<News> listAll; private Integer id; private String message;
public List<News> getListAll() { return listAll;
} public void setId(Integer id) {
this.id = id;
} public Integer getId() {
return id;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public String showAll(){
listAll=ns.showAll();
// System.out.println(ns);
return "success";
}
public String deleteSingleNews(){
message=ns.deleteSingleNews(id);
return message;
}
}
package news.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import news.entity.News; public class NewsDaoImpl implements NewsDao {
//@Resource(name="sessionFactory")
@Autowired
@Qualifier
private SessionFactory sf; public List<News> showAll(){
Session session =sf.openSession();
//Session session=sf.getCurrentSession();
Query query=session.createQuery("from News");
List<News> listAll=query.getResultList();
return listAll;
}
public String deleteSingleNews(Integer id){
Session session =sf.openSession();
//Session session=sf.getCurrentSession();
Query query =session.createQuery("from News where id=:myid");
query.setParameter("myid", id);
List<News> deleteList=query.getResultList(); String returnValue="fail";
if(deleteList.size()==1){
News news=deleteList.get(0);
session.getTransaction().begin();
session.delete(news);
returnValue="deleteList";
session.getTransaction().commit();
session.close();
}
return returnValue;
} }
package news.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import news.dao.NewsDao;
import news.entity.News; public class NewsServiceImpl implements NewsService {
//@Resource(name="myNewsDao")
@Autowired
@Qualifier
private NewsDao nd=null; public List<News> showAll(){
List<News> listAll=nd.showAll();
return listAll; } public String deleteSingleNews(Integer id){
String returnValue="fail";
returnValue=nd.deleteSingleNews(id);
return returnValue;
} }

上面的代码,之所以没用jdk自带的注解是因为?

我稍后给大家公布答案~.~

最后,我来给大家说说类注解吧。类注解是什么呢?

用我自己的话来说就是标签的类自动注册到spring容器。

接下来我们来看代码:

其他的都一样,所以后面的就不做批注了。

这了这一步,我们就来公布答案为什么不用jdk自带注解而用spring注解。

写的不好的地方还请大家多多指教~。~

搭建ssh后的简化的更多相关文章

  1. ssh搭建后的简化

    关于ssh如何搭建还有不懂得朋友可以参考以下网址:http://www.cnblogs.com/LarryBlogger/p/5841446.html 在这里我就不重复再讲了! ssh搭建后的简化 简 ...

  2. SSH基本框架搭建后的简化

    对于SSh框架的简化,我们可以从下面几个方面来剖析: 1.实体类entity:在这里我们需要将数据库和实体类进行关联,在简化之前,我们需要在entity包里面加入一份.xml配置文件 例如原码---- ...

  3. Mac下maven工程的创建,并搭建SSH环境

    最近项目有用到maven,就特地学了一下.maven的一句话攻略就是,项目托管.帮你解决各种项目琐事:清理,导包....等等. 首先先到apach官网去下载一个maven的包,http://maven ...

  4. 用eclipse搭建SSH(struts+spring+hibernate)框架

    声明: 本文是个人对ssh框架的学习.理解而编辑出来的,可能有不足之处,请大家谅解,但希望能帮助到大家,一起探讨,一起学习! Struts + Spring + Hibernate三者各自的特点都是什 ...

  5. MyEclipse8.5快速搭建SSH框架

    来源于:http://jingyan.baidu.com/article/a378c960a78125b3282830cc.html MyEclipse8.5快速搭建SSH框架 使用版本: Strut ...

  6. intellij idea搭建ssh开发框架之绑定数据源

    原文:intellij idea搭建ssh开发框架之绑定数据源 在intellij idea中绑定数据源并生成hibernate实体对象.在IDE中的右边找到Database标签. 点击弹出窗口中的图 ...

  7. [JavaEE] SSH框架笔记_eclipse搭建SSH框架详解

    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hibe ...

  8. Linux搭建SSH服务器

    Linux 远程登录服务:ssh ·SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Te ...

  9. 搭建SSH

    搭建SSH详细步骤及相关说明   因为手里已有相关jar,为方便我搭建的是:Struts2.0+Hibernate3.3+Spring3.0,数据库:MySQL 如果想搭建最新的,在官网上下载最新ja ...

随机推荐

  1. 用border-image实现波浪边框

    border-image的介绍 http://www.w3school.com.cn/cssref/pr_border-image.asp 先看一个效果: http://www.w3school.co ...

  2. 将jetty嵌入到应用中的简单案例

    前面说过jetty最广泛的应用是可以方便的嵌入到应用程序中,而不是作为应用服务器,下面就用最简单的demo来演示一个最简单的应用 1.下载并导入依赖 首先应该建立一个普通的java项目,然后把依赖包导 ...

  3. java内存溢出和内存泄露

    虽然jvm可以通过GC自动回收无用的内存,但是代码不好的话仍然存在内存溢出的风险. 最近在网上搜集了一些资料,现整理如下: —————————————————————————————————————— ...

  4. 安卓真机调试 出现Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE....

    [2016-08-20 14:38:39 - hybrid-android] Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE[2016-0 ...

  5. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  6. 用typedef定义函数指针的问题

    在学习windows API的时候,遇到下面这段代码   以前见过的typedef的用法都是给一个数据类型取一个别名 typedef oldTypeName newTypeName   这种给数据类型 ...

  7. 在js中添加新节点

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. 关于mysql MYISAM引擎的锁问题

    CREATE TABLE `citymy` ( `city_id` smallint(5) unsigned NOT NULL DEFAULT '0', `city` varchar(50) CHAR ...

  9. 协议分析TMP

    最近闲来有事, 分析了一个非常低端(非常低端的意思是说你不应该对她是否能取代你现有的QQ客户端作任何可能的奢望,她只是一个实验性的东西)的手机QQ的协议, 是手机QQ3.0,      所用到的TCP ...

  10. js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入

    设置快捷键 这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb). hotkeys on Githubhotkeys预览 创建 您将需要在您的系 ...