步骤一:准备

1.下载

sqlJDBC.jar的下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=21599
Hibernate4下载地址:http://www.hibernate.org/downloads
将sqlJDBC中的sqljdbc4.jar + Hibernate/lib/required中的jar文件 + Struts2里面的必备的jar包拷贝到WebRoot/WEB-INF/lib文件夹下面。

2.创建工程

1) 创建一个Web工程,添加三个页面:index.jsp(默认存在,如下所示),Complete.html(简单的文字显示), Error.html

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
…
<body>
<s:form action="creat">
<s:submit value="Click To Insert Data"/>
</s:form>
</body>
</html>

 

步骤二:配置Struts

1. 配置Struts

1) 首先在WebRoot/WEB-INF下面在web.xml中指定filter(负责前台S标签解析)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

2) 然后创建struts.xml(负责后台Action映射)放到src的下面

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.configuration.xml.reload" value="true"/>
<package name="default" namespace="" extends="struts-default">
<action name="create" class="org.WebHibernate.OperationAction" method="CreateUsedH4">
<result name="success">/Complete.html</result>
<result name="error">/Error.html</result>
</action>
</package>
<!-- Add packages here -->
</struts>

这里用一下Struts2里面的新鲜货,可以指定Action对应的方法名,Struts1里面开始只能调用Execut的方法的哦。

3) 添加Struts的引用,右键工程,Build Path->config build path…-> Libraries –> Add External Jars…。添加Struts必备文件。

注:struts2必备jar文件有common-fileupload.jar;common-io.jar;commons-logging-X.jar;commons-lang3-3.1;freemarker-X.jar;ognl-X.jar;

strus2-core-X.jar;x-work-core-X.jar;javassist-3.11.0.GA

2. 创建action/业务类

1) 右键src创建新的包,取名org.WebHibernate,再在下面创建一个新的类,叫做OperationAction

package org.WebHibernate;
import com.opensymphony.xwork2.ActionSupport;
public class OperationAction extends ActionSupport {
public String CreateUsedH4()
{
return SUCCESS;
}
}

3. 在Tomcat中创建虚拟目录并运行网站。

%System%\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Server.xml中添加如下:

      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
…
        <Context path="/wh" docBase="D:\JavaSpace\WebHibernate\WebRoot"/>
</Host>

至此,Struts配置成功,能够实现页面的跳转。

步骤三:配置Hibernate

1. 配置DB Driver

Windows菜单->Show view->DB Browser->右键New,填写内容如下,点击“Finish”,OK,数据库驱动配置完毕。

1)连接字符串:jdbc:sqlserver://localhost:1433; DatabaseName=dbname ;

2)Driver Jars”里面要首先选sqljdbc.jar,然后是sqljdbc4.jar,顺序不能变,两个一个都不能少。其实对于JRE1.7而言sqljdbc.jar是会引发代码异常的,但是如果仅仅是导入sqljdbc4.jar,“Driver classname”将无法自动识别,所以需要先通过选择sqljdbc来获取“Driver Classname”,后来还需要把他从Library中删掉。

2. 配置Hibernate

1)右键工程->My Eclipse->Add Hibernate Capibilities…不需要选择Library,因为我是用的是myEclipse6.5,只支持到H3,没有H4的包,所以这里不需要导入任何已经存在的jar包,否则会导致后面代码执行混淆;另外需要注意的是“Jar Library Installation”,选择的是“Copy”项目,这样后面导入的Jar包会自动添加到Library Folder中。点击“Next”,保持默认的即可。

2)选择数据源的驱动器,这里选择JDBC Driver,然后选择刚才创建的SQL Server的数据源(DB Driver)即可。下一步,取消勾选“Creatre SessionFactory class?”然后“Finish”,这样Hibernate的基本配置就完成了。

3. 创建表映射

1)创建一个包用来盛放映射信息,在src下面创建一个包“org.Web.WebHibernate.bean”;

2)在DB Browser中,右键刚才创建的Driver,选择“Open Connection…”,就会自动加载到表信息,定位到你的数据库的表信息,右键表,点选“Hibernate Revenue Engineering…”;分别指定“Java src folder”和“Java Package”的路径,其他的维持默认;点击下一步,在这个页面中只需要指定“ID generation”即可,选择“assigned”代表主键是代码指定的,而不是自动生成。点击Finish,完成映射关系。

注:经过此番配置将会在src的根目录生成一个*.cfg.xml文件,这个文件主要是用来描述连接数据库的信息,以及对应的表的映射文件;还会在“org.Web.WebHibernate.bean”包中创建*.hbm.xml文件,这个文件定义了针对某张表的每个字段和实体类的映射关系。

4. 编写代码

1)将hibernate-release-4.2.2.Final\lib\required下面的jar包放到WebRoot\WEB-INF\lib下面;

2)创建实体类(POJO)用来保存数据,类名和*.hbm.xml的配置保持一致。

package org.Web.WebHibernate.bean;

public class Table1 {
private String aa = null;
private String bb = null;
private String id ;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAa() {
return aa;
}
public void setAa(String aa) {
this.aa = aa;
}
public String getBb() {
return bb;
}
public void setBb(String bb) {
this.bb = bb;
}
}

注:表结果如下

3)创建实现类,就在上面OperationAction的CreateUsedH4()中添加如下代码:

package org.WebHibernate;
import org.Web.WebHibernate.bean.Table1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.opensymphony.xwork2.ActionSupport; public class OperationAction extends ActionSupport {
public String CreateUsedH4(){
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
Table1 t = new Table1();
t.setId("5");
t.setAa("ABC");
t.setBb("DEF");
session.save(t);
session.getTransaction().commit();
session.close();
return SUCCESS;
}
}

4) 直接运行后可能会遇到JRE和jdbc不匹配的错误,在右键工程->build Path->Libraries中删掉sqljdbc.jar文件即可。

 

附上调试过程遇到的具体问题:

1.java.lang.ClassNotFoundException: org.hibernate.Session

下载的Hibernate,里面的bin/required里面的jar包需要全部copy到WEB-INFO/lib文件夹中。

4.想要重新配置Hibernate

经过一次配置后,add hibernate capabilities将会变得不可用,想要重新配置打开根目录.project文件,删除

        <buildCommand>
<name>com.genuitec.eclipse.hibernate.HibernateBuilder</name>
<arguments>
</arguments>
</buildCommand>

以及

    <natures>
<nature>com.genuitec.eclipse.hibernate.hibernatenature</nature>
        …
</natures>

即可重新配置Hibernate。

 

2.XML Editor的多方式看XML内容

MyEclips里面的XML Editor是由Design和Source两个Tab的,如果不习惯看Design页面可以切换点击到Source,hibernate.cfg.xml则有三个Tab供你选择切换视角。

     

3. java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;

因为我是单用的是H4(所以和S3无关,网上主要讲述的是S3和H4的文章),但是在MyEclips添加了Hibernate的配置后默认是会添加上一堆H3的jar,导致引用异常,在BuildPath中,删除掉H3相关的Jar包和信息即可。

4.???????? Java Runtime Environment (JRE) 1.7 ??????? JDBC 4.0 ? sqljdbc4.jar ???

删掉WEB-INF/lib下面的sqldbc.jar即可。因为JRE1.7只支持sqljdbc4,但是因为我是用的是MyEclips6,所以添加Hibernate只能是按照H3的方式添加,还需要添加sqljdbc.jar以及sqljdbc4.jar(否则识别不出Driver Class),创建完毕后,直接在buildPath还是物理文件夹中删除即可。

5.Unknown entity: org.njy.bean.Table_1

那是因为创建Hibernate映射的时候出现的问题,打开XX.hbm.xml文件。

<hibernate-mapping>
<class name="org.njy.bean.Table_1" table="Table_1" schema="dbo" catalog="Test">
    …

将class的name指定为你自己定义的实体类(里面指定了对于字段的get和set方法,即POJO对象)的全路径,即可。

6.Address already in use: JVM_Bind

当然这个问题和Hibernate无关。就是在调试过程中发现了tomcat经常莫名其妙的关闭。于是看了一下日志发现标题所示的异常。这个异常代表Tomcat的端口被其他的程序占用了。于是,打开cmd窗口,敲命令:netstat –ano(啊!弄),显示端口占用情况以及占用程序的PID,发现了可疑程序,到任务管理器中一看果然有一个:  :Java(TM) Platform SE binary,还有一个是javaw.exe*32(MyEclipse),后来通通删掉,问题解决。

MyEclips:Struts 2 + Hibernate 4 + SQL Server2008的更多相关文章

  1. Struts+Spring+Hibernate、MVC、HTML、JSP

    javaWeb应用 JavaWeb使用的技术,比如SSH(Struts.Spring.Hibernate).MVC.HTML.JSP等等技术,利用这些技术开发的Web应用在政府项目中非常受欢迎. 先说 ...

  2. 3大框架Struts、Hibernate、Spring简单了解

    3大框架:Struts.Hibernate.Spring 基本概念:Spring/Struts/Hibernate是干嘛用的? 三个框架产生的技术历史背景 学习前首先应该掌握的基础知识 学习一个开发框 ...

  3. 使用设置sa用户登录sql server2008

    今天在net项目中添加数据库过程中出现了小问题,就是使用sql server身份验证没登录成功,经过一番调试,终于解决问题. 使用sa账户登录sql server 2008 的方法步骤如下: 1.首先 ...

  4. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  5. 三大框架:Struts+Hibernate+Spring

    三大框架:Struts+Hibernate+Spring Java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...

  6. Java Web整合开发实战:基于Struts 2+Hibernate+Spring 目录

    第1篇 Java Web开发基础第1章 Web的工作机制( 教学视频:31分钟) 1.1 理解Web的概念 1.1.1 Web的定义 1.1.2 Web的三个核心标准 1.2 C/S与B/S两种软件体 ...

  7. sql server2008 R2打开报错:无法识别的配置节 system.serviceModel解决办法分享

    本人是先安装的sql server2008 R2成功可以运行后,再安装VS2010成功后,再打开sql server2008,就出现以下错误,无法连接服务器.   无法识别的配置节 system.se ...

  8. Spring MVC第一课:用IDEA构建一个基于Spring MVC, Hibernate, My SQL的Maven项目

    作为一个Spring MVC新手最基本的功夫就是学会如何使用开发工具创建一个完整的Spring MVC项目,本文站在一个新手的角度讲述如何一步一步创建一个基于Spring MVC, Hibernate ...

  9. 2018.11.11 Java的 三大框架:Struts+Hibernate+Spring

    ·定义:Java三大框架主要用来做WEN应用.Struts主要负责表示层的显示: Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作): Hibernate主要是数据持久化到数据库. ...

随机推荐

  1. 在网上浏览.NET的所有代码,并且让你的Visual Studio的go to definition(F12)指向在线代码

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在网上浏览.NET的所有代码,并且让你的Visual Studio的go to definition(F ...

  2. Jsp学习(2)

    Jsp的三大指令 (1).include 作用:相当于把当前页面去包含页面 语法: <%@include file="/common/test.jsp" %> 实例如下 ...

  3. Char* ,CString ,WCHAR*之间的转换

    关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...

  4. PureMVC(JS版)源码解析(十一):Model类

          这篇博文讲PureMVC三个核心类——Model类.Model类的构造函数及工厂函数[即getInstance()方法]和View类.Controller类是一样的,这里就不重复讲解了,只 ...

  5. python学习笔记--Django入门一 网页显示时间

    我的笔记是学习http://djangobook.py3k.cn/ 课程时做的,这个上边的文章讲的确实是非常的详细,非常感谢你们提供的知识. 上一篇随笔中已经配置好了Django环境,现在继续跟随ht ...

  6. AWVS介绍

    使用AWVS对域名进行全局分析,深入探索: 首先,介绍一下AWVS这个工具. Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网 ...

  7. [Eclipse]The type XXX cannot be resolved. It is indirectly referenced from required .class files

    在Eclipse中遇到The type XXX cannot be resolved. It is indirectly referenced from required .class files错误 ...

  8. 设计模式——工厂模式 (C++实现)

    软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.设计模式中运用了面向对象编程语言的重要特性:封装.继承.多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累. ...

  9. 使用jquery.validate.js实现boostrap3的校验和验证

    使用jquery.validate.js实现boostrap3的校验和验证 boostrap3验证框架 jquery.validate.js校验表单 >>>>>>& ...

  10. 让Sql语句区分大小写

    除非你使用 LIKE 来比较字符串,否则MySQL的WHERE子句的字符串比较是不区分大小写的. 你可以使用 BINARY 关键字来设定WHERE子句的字符串比较是区分大小写的. SELECT * f ...