问:ssh是哪三大框架,以及他们的作用是什么?

答:分别是struts,spring,hibernate.

struts的作用是:是web层,其核心是mvc模式,他可以自动获取参数,自动类型转换,自动页面跳转(将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现),还有一个就是做一些简单的校验或者是国际化工作。

spring的作用是:是业务层,采用IOC和AOP,是用于项目解耦。

hibernate的作用是:数据层,数据库的封装

事先需要做的准备工作:

1.安装jdk,这里就不多说了,我使用的是jdk1.8

2.需要用到的工具:eclipse,mysql等等

好,接下来我们就开始创建项目了。

第一步:创建一个叫做ssh的项目吧。但是得提醒大家不要忘记勾选web.xml文件,请看如下截图。

第二步:搭建struts2环境

首先;引入struts2的包

接下来需要修改WEB-INF里面的web.xml文件

由于待会我们就要引入spring了,所以这个监听器我们这里一块配置

第三小步就是添加我们的struts.xml文件了

接下来我们需要创建一个action类,名字就叫做indexAction吧

中间的话我们先相应的建一个dao类和service类

刚刚的那个注入,也就替换了以前的new对象。

接下来我们来先建jsp文件,我们先不写里面的内容,只是把流程弄出来

第三步:搭建spring和hibernate的环境

首先我们也是需要导包的

这里我们的文件和源码是不需要导进来的

到这里包并没有导完,还需要导struts2-spring的包

如下:

接着我们导hibernate需要的包

接着我们来看看我们的实现类

同理dao的实现类也是一样的

hibernate包导完了我们就可以用sessionFactory注入了

接下来我们编写applicationContext.xml文件

看到实体类的映射文件我这里就随便举个例子说下

接着我们继续弄applicateContext.xml文件

如上图那样的话我们需要在自己写一份jdbc的属性,所以我们需要在头部导入

接着我们需要创建一份jdbc.properties

现在我们来运行,发现程序报错了

然后发现是c3p0的架包没有导入

再来运行

看到这里我们就知道框架搭建成功了

下面是我画的一张流程图,大家可以参考下

接下来我来跟大家分享用EntityManagerFactory来实现上面一样的功能

由于这样的话我们需要在dao的实现类注入EntityManagerFactory,

代码如下:

package dao;
import java.util.List; import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext; import entity.BookCard; public class IndexDaoImpl implements IndexDao {
//注入:
//private SessionFactory sf; //public void setSf(SessionFactory sf) {
//this.sf = sf;
//}
@PersistenceContext
private EntityManagerFactory emf; public void setEmf(EntityManagerFactory emf) {
this.emf = emf;
} @Override
public List<BookCard> getAllBookCard(){
//这个是没有交给spring去做的实例化对象
//sf=new Configuration().configure().buildSessionFactory();
//Session session=sf.openSession();//实例化session
//session.beginTransaction();//实例化一个事务
/*List<BookCard> list=
session.createQuery("from BookCard").getResultList();
session.getTransaction().commit();
session.close();
//sf.close(); */
EntityManager entityManager=emf.createEntityManager();
List<BookCard> list=entityManager.createQuery("from BookCard",BookCard.class).getResultList();
entityManager.close();
//emf.close();
return list;
}
}

大家可以做个对比,其实大同小异

但是EntityManagerFactory需要persistence.xml

代码如下

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns:persistence="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_2_1.xsd "> <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider><!-- 驱动实现类,入口类 --> <mapping-file>entity/BookCard.hbm.xml</mapping-file>
<properties> <!-- Common properties -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"></property>
<property name="hibernate.show_sql" value="true"></property>
<property name="hibernate.format_sql" value="true"></property>
<property name="hibernate.hbm2dll.auto" value="update"></property> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"></property>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/CardDB"></property>
<property name="hibernate.connection.username" value="root"></property>
<property name="hibernate.connection.password" value="123456"></property> </properties>
</persistence-unit>
</persistence>

当然也别忘了applicationContext.xml里面需要配置,如下:

<bean id="myEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="jpa" />
</bean>

这里还需要说的一个就是,如果实体类.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="entity">
<!-- 这里的名和数据库那边一一对应,不写则默认一样 -->
<class name="BookCard" table="BookCard">
<id name="cid" column="cid">
<generator class="increment"/>
</id>
<property name="name"></property>
<property name="sex"></property>
<property name="cardDate" column="cardDate"></property>
<property name="deposit"></property>
</class>
</hibernate-mapping>

再次声明一下,如果删除了映射文件,那么就要在实体类那边注解。

现在,我们把实体类的映射文件删了,但是我们要在实体类那边加上注解,如下:

package entity;

import java.math.BigDecimal;
import java.util.Date; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="BookCard")//如果不加则表明类名和表名相同
public class BookCard {
private int cid ;
private String name;
private String sex ;
private Date cardDate;
private BigDecimal deposit; public BookCard() {
super();
}
public BookCard(String name, String sex, Date cardDate, BigDecimal deposit) {
super();
this.name = name;
this.sex = sex;
this.cardDate = cardDate;
this.deposit = deposit;
} @Id
@GeneratedValue(generator="increament")
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
} @Column
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} @Column
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
} @Column
public Date getCardDate() {
return cardDate;
}
public void setCardDate(Date cardDate) {
this.cardDate = cardDate;
} @Column
public BigDecimal getDeposit() {
return deposit;
}
public void setDeposit(BigDecimal deposit) {
this.deposit = deposit;
} }

运行结果如下:

用Eclipse搭建ssh框架的更多相关文章

  1. Java之基于Eclipse搭建SSH框架(下)

    在上篇博客里,我简介了Tomcat滴配置与Struts2滴搭建,假设对这个还不会滴童鞋去看一下我滴上篇博客<Java之基于Eclipse搭建SSH框架(上)>.今天我们接着上篇博客滴内容. ...

  2. Eclipse搭建SSH框架(Struts2+Spring+Hibernate)

    见识少的我经过一天多的研究才知道,在MyEclipse中搭好的框架的配置文件和jar包是通用的.接下来——亮剑! 工具:Eclipse+Tomcat+Mysql 一.先在Eclipse中配置好Tomc ...

  3. Java之基于Eclipse搭建SSH框架(上)

    http://blog.csdn.net/snowwitch/article/details/50925382 http://www.cnblogs.com/hww123/archive/2016/0 ...

  4. Eclipse搭建SSH(Struts2+Spring+Hibernate)框架教程

    | 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 确实,刚创博客,对于这个陌生的东西还是有些许淡然.这是我的第一篇博文,希望能给你们有帮助,这就是我最大的乐趣! 好了下面进入正题: SS ...

  5. eclipse Indigo搭建SSH框架详解

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

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

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

  7. eclipse搭建ssh后台

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

  8. 转载:eclipse 搭建SSH项目(第一篇)

    第一篇:原文地址:http://blog.csdn.net/aaaaaaaa0705/article/details/6288431(虽然没有具体的例子,不过逻辑性强点,比较容易看懂) SSH框架是最 ...

  9. myeclipse搭建SSH框架

    搭建SSH框架 Struts+hibernater+spring架构(myeclipse) 右击,首先加入spring,加入hibernater,再加入struts2 复制jar包(把tomcat发布 ...

随机推荐

  1. Ajax跨域:jsonp还是CORS

    跨域一般用jsonp,兼容性比较好.CORS是html5最新的XHR第二版本,不支持IE8,IE9,对移动端的支持非常好.但是考虑项目后期这部分会转到同域名下,而且网址不需要支持ie8,ie9,所以我 ...

  2. jQuery插件开发代码

    方法和原理在这篇博文中非常详细易懂 http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 下面整理下基本知识点和基本的代码段: jQue ...

  3. bootstrap - 响应式标题栏

    先要拆分: .navbar  先变成相对定位 设置最小高度为50px: 设置底部边距为20px 然后设置一个 透明边框! 边框倒角 4px   //@media (min-width:768px) - ...

  4. 设计模式--适配器模式Adapter(结构型)

    一.适配器模式 适配器模式的主要作用是在新接口和老接口之间进行适配.将一个类的接口转换成客户端期望的另外一个接口.其实适配器模式有点无赖之举,在前期设计的时候,我们就不应该考虑适配器模式,而应该通过重 ...

  5. 关于试用jquery的jsonp实现ajax跨域请求数据的问题

    我们在开发过程中遇到要获取另一个系统数据时,就造成跨域问题,这就是下文要说的解决办法: 先我们熟悉下json和jsonp的区别: 使用AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交 ...

  6. 如何编写稳定流畅的iOS移动端应用

    原文链接:http://www.jianshu.com/p/f4adce56166f 不忘初心 在过去几年间,移动应用以雷霆之势席卷全球.我们在工作和休闲时间中使用互联网的方式,已经随着移动应用的前进 ...

  7. R语言环境安装与基本使用

    R语言安装包可以从这个地址选择合适的URL去下载:https://cran.r-project.org/mirrors.html,这里使用这个https://mirrors.tuna.tsinghua ...

  8. python windows时间同步工具

    由于某种原因(BIOS电池没电),电脑的系统时间会与我们的北京时间不同步,将会导致如下问题: 1. 抢火车票的时候已经过时间了 2.别的同事都走了,你还以为没下班 …… 规避问题的方法:同步系统时间 ...

  9. net-force.nl/programming writeup

    从 wechall.net 到 net-force.nl 网站,发现网站的内容不错,里面也有不同类型的挑战题目:Javascript / Java Applets / Cryptography / E ...

  10. C++ 系列:深拷贝与浅拷贝

    Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...