步骤一:准备

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. 设置myeclipse自动生成的author等注释

    一.window->preference->java->code    styple->code Template 当你选择到这部的时候就会看见右侧有一个框显示出code这个选 ...

  2. java数据库连接池dbcp的使用

    近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架构的3层开发模式 ...

  3. android invalidate 执行流程详解

    invalidate()函数的主要作用是请求View树进行重绘,该函数可以由应用程序调用,或者由系统函数间接 调用,例如setEnable(), setSelected(), setVisiblity ...

  4. mybatis04 根据用户名称模糊查询用户信息

    根据用户名称模糊查询用户信息可能返回多条记录. 1.1.1User.xml 编码 如果用%进行模糊查询,#{}表示一个占位符会被翻译为一个?号(SELECT * FROM USER WHERE id= ...

  5. 为什么DropDownList的SelectedIndexChanged事件触发不了

    写的还行,转来大家看看 为什么DropDownList的SelectedIndexChanged事件触发不了? 为什么设置了DropDownList的AutoPostBack="True&q ...

  6. linux shell wc 命令

    1. 语法与选项 Short Option Long Option Option Description -c –bytes print the byte counts -m –chars print ...

  7. Audit(查看审核/审计信息)

    2013需要到 网站集管理-网站集审核设置 中设置要开启的审核项,开启之后sharepoint才会记录信息,信息存储在contentDB的AuditData中: 去读审计信息的sharepoint代码 ...

  8. Chapter 5. The Gradle Wrapper 关于gradle wrapper

    Most tools require installation on your computer before you can use them. If the installation is eas ...

  9. codeforces 580D Kefa and Dishes(状压dp)

    题意:给定n个菜,每个菜都有一个价值,给定k个规则,每个规则描述吃菜的顺序:i j w,按照先吃i接着吃j,可以多增加w的价值.问如果吃m个菜,最大价值是多大.其中n<=18 思路:一看n这么小 ...

  10. 【原创教程】一、Angular教程系列之认识angular

    为什么我会准备写这个原创教程系列? 写下这个标题之后,看着屏幕上空白的内容区,不知从何下手,想说的似乎有很多,似乎又没啥说的.有时候就会陷入这种矛盾中,有时候就是这样,于是,我下定决心这一次一定要把这 ...