`
utyphoon
  • 浏览: 12006 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在Eclipse下实践Struts+Hibernate 一

阅读更多
一、开发环境:
1、java version "1.6.0_07" [jdk-6u7-windows-i586-p.exe]
2、Eclipse Platform Version: 3.3.2 Build id: M20080221-1800 [eclipse-jee-europa-winter-win32.zip]
3、apache-tomcat-5.5.26

二、开发过程:
这是例子是延续《在Eclipse下实践Struts(不用Struts IDE).二》的基础上开发的。
1、创建数据表
     数据库就用test吧,建表:
CREATE TABLE IF NOT EXISTS `customers` (
`ID` bigint(20) NOT NULL,
`NAME` varchar(15) NOT NULL,
`EMAIL` varchar(128) NOT NULL,
`PASSWORD` varchar(8) default NULL,
`PHONE` int(11) default NULL,
`ADDRESS` varchar(255) default NULL,
`SEX` char(1) default NULL,
`IS_MARRIED` bit(1) default NULL,
`DESCRIPTION` text,
`IMAGE` blob,
`BIRTHDAY` date default NULL,
`REGISTERED_TIME` timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


(嘿嘿,这个是网上抄来的语句,这个不是重点,就不多说了)

2、hibernate.cfg.xml
路径src\hibernate.cfg.xml
这是个配置文件,里面包含了我们所要链接数据库的一些信息,例如用户名、密码之类的东东,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">
            org.gjt.mm.mysql.Driver
        </property>
        <property name="hibernate.connection.url">
            jdbc:mysql://localhost/test
        </property>
        <property name="hibernate.connection.username">test</property>
        <property name="hibernate.connection.password">test</property>
        <property name="hibernate.dialect">
            org.hibernate.dialect.MySQL5Dialect
        </property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.transaction.factory_class">
            org.hibernate.transaction.JDBCTransactionFactory
        </property>
        <mapping   resource="com/yeepal/test/Customer.hbm.xml"/>
    </session-factory>
</hibernate-configuration>


其中的mapping一段,表示我们需要连接的一个表,这个配置文件我们马上就会遇到了,就是比较奇怪的是,如果这个项目用到100张表的话,这里不是要写100行,我的妈呀,代码泛滥呀。应该有更好的解决方案,后面再研究。

3、Customer.hbm.xml
路径:src\com\yeepal\test
这个文件要和相应的类(Customer.java)放在一起,内容如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.yeepal.test.Customer" table="customers">
    <id name="id" column="ID" type="long">
      <generator class="increment"/>
    </id>
    <property name="name" column="NAME" type="string" not-null="true" />
    <property name="email"     column="EMAIL"     type="string" not-null="true" />
    <property name="password" column="PASSWORD" type="string" />
    <property name="phone"     column="PHONE"     type="int" />
    <property name="address"   column="ADDRESS"   type="string" />
    <property name="sex"       column="SEX"       type="character"/>
    <property name="married"   column="IS_MARRIED" type="boolean"/>     
    <property name="description"   column="DESCRIPTION" type="text"/>     
    <property name="image"         column="IMAGE"        type="binary"/>
    <property name="birthday"      column="BIRTHDAY"     type="date"/>
    <property name="registeredTime" column="REGISTERED_TIME" type="timestamp"/>
</class>
</hibernate-mapping>


4、Customer.java
这个文件是ORM对应的类,内容如下:
package com.yeepal.test;

import java.io.Serializable;
import java.sql.Date;
import java.sql.Timestamp;

public class Customer implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;
    private String name;
    private String email;
    private String password;
    private int phone;
    private String address;
    private char sex;
    private boolean married;
    private String description;
    private byte[] image;
    private Date birthday;
    private Timestamp registeredTime;
    public int a;

    public Customer() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getPhone() {
        return phone;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public boolean isMarried() {
        return married;
    }

    public void setMarried(boolean married) {
        this.married = married;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public byte[] getImage() {
        return this.image;
    }

    public void setImage(byte[] image) {
        this.image = image;
    }

    public Date getBirthday() {
        return this.birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Timestamp getRegisteredTime() {
        return this.registeredTime;
    }

    public void setRegisteredTime(Timestamp registeredTime) {
        this.registeredTime = registeredTime;
    }

}


很长很长的内容吧,其实这里的内容,和之前Customer.hbm.xml里的内容是一一对应的,在实际项目中完全可以抄过来该改改改就OK了,敲那么多代码,想当神仙呀。

5、useHibernate.java
这个类用于启动Hibernate,内容如下:
package com.yeepal.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class useHibernate {
    public static SessionFactory sessionFactory;

    // 初始化Hibernate,创建SessionFactory实例
    public void saveCustomer(Customer customer) throws Exception {
        Configuration config = null;
        config = new Configuration().configure();
        // 创建一个SessionFactory 实例
        sessionFactory = config.buildSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            // 开始一个事务
            tx = session.beginTransaction();
            session.save(customer);
            // 提交事务
            tx.commit();
        } catch (Exception e) {
            if (tx != null)
                tx.rollback();
            throw e;
        } finally {
            session.close();
        }
    }
}



这里的很多内容都是通用的,也就是说在实际项目中是完全可以抄过去用的。

6、CommonExample.java
由于我是想继续之前的实验(《在Eclipse下实践Struts(不用Struts IDE).二》)继续往下做,所以这里要写一个Action,内容如下:
package com.yeepal.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.opensymphony.xwork2.ActionSupport;

public class CommonExample extends ActionSupport {

    /**
    *
    */
    private static final long serialVersionUID = 1L;
    Configuration cfg = new Configuration().configure();
    SessionFactory sessions = cfg.buildSessionFactory();
    Session session = sessions.openSession();
    Transaction tx = session.beginTransaction();

    Customer customer = new Customer();

    public String execute() throws Exception {
        customer.setName("phengchen");
        customer.setEmail("utyphoon@126.com");

        session.save(customer);

        tx.commit();
        session.close();
        return SUCCESS;
    }

}


7、修改struts.xml
添加一个Action,全文内容如下:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <include file="struts-default.xml" />

    <package name="default" extends="struts-default">
        <action name="hello"
            class="com.yeepal.test.HelloAction">
            <result name="success">success.jsp</result>
            <result name="input">index.jsp</result>
        </action>
       
        <action name="commonexample"
            class="com.yeepal.test.CommonExample">
            <result name="success">success.jsp</result>
            <result name="input">index.jsp</result>
        </action>

    </package>
</struts>


注意第二个action,我给他命个了名子叫commonexample,对应的类就是我们之前写的那个com.yeepal.test.CommonExample

8、commonexample.jsp
要有点展示吧,所以就写了个超级简单的页面,只有一个按钮,什么都没有,内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="commonexample.action" method="post">
<p><input type="submit" value="提交" /></p>
</form>
</body>
</html>


9、运行
前面的代码写完之后,部署起来,然后启动Tomcat,访问http://localhost:8080/cooltest/commonexample.jsp页面,可以看到只有一个按钮,点击这个按钮后,检查数据库,可以看到customers表里面多了一条记录。

10、下载
这里可以下载到本文代码。
分享到:
评论

相关推荐

    Java Web整合开发完全自学手册:Struts+Hibernate+Spring+Eclipse源码

    以国内使用最广泛的Struts为例,其新版本Struts2与前一版Struts1.x已经有了天壤之别。Hibernate也从2.0升级为3.X,近期Spring也最新推出了2.5版。读者如果再参考以前的版本书籍学习,无异于南辕北辙,而《JavaWeb...

    精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例(pdf完整版).part2-1

    精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...

    一个spring+struts+hibernate的例子

    一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流

    开发者突击·Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)源码

    基于Struts1的SSH整合架构,并开发个人通讯录和一个完整的办公自动化系统,实现的功能包括日程安排、工作日志、短消息管理、公告管理、会议管理;基于Struts2的SSH2整合架构,并在此架构基础上实现一个完整的办公...

    整合Eclipse struts+hibernate+spring2

    整合Eclipse struts+hibernate+spring2

    struts+hibernate+mysql做的增删改查小例子

    总之,"struts+hibernate+mysql做的增删改查小例子"是一个很好的实践平台,可以帮助你巩固和提升Java Web开发技能,尤其是对于MVC架构和ORM的理解。通过逐步学习和实践,你将能够独立地完成更复杂的应用开发任务。

    Eclipse+Struts+Spring+Hibernate+Mysql环境搭建及访问数据库实例

    在IT行业中,开发Java Web应用时常常会使用到一套名为SSH2(Struts2、Spring、Hibernate)的技术栈,这是一套成熟的后端框架组合,能够有效地帮助开发者构建高效、可维护的应用程序。本教程将详细讲解如何在Eclipse...

    J2EE--Eclipse+Struts+Hibernate+Spring

    在"J2EE--Eclipse+Struts+Hibernate+Spring"的环境下,开发者通常会按照以下步骤进行开发: 1. **环境搭建**:首先安装Eclipse,然后通过插件如Spring Tool Suite(STS)来增强对Spring的支持。接着,配置JDK和J2EE...

    在线购物Eclipse+Struts+Hibernate

    总的来说,《在线购物Eclipse+Struts+Hibernate》是一个实用的学习资源,涵盖了Java Web开发中的关键技术和实践,对于想要提升自己在Java后端开发能力的程序员来说,是一份宝贵的资料。通过深入研究和实践,你将能够...

    Java项目之图书管理系统(struts+hibernate+spring)源代码

    Java项目之图书管理系统源代码,使用了struts+hibernate+spring等技术,需要的小伙伴不要错过了。Java项目之图书管理系统源代码,使用了struts+hibernate+spring等技术,需要的小伙伴不要错过了。

    Eclipse搭建struts2+spring3+hibernate3

    1.加载struts-2.3.16.3,把画面跑出来,不连数据库,看一下有消息验证 2.加载 hibernate-distribution-3.3.2.GA-dist.tar.gz,连数据库,看正常插入。 3.删除Hibernate的配置文件Hibernate.cfg.xml,工厂类...

    精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例(pdf完整版).part2-2

    精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...

    eclipse(struts2+spring3+hibernate3)案例附带mysql数据库

    在IT行业中,SSH(Struts2 + Spring3 + Hibernate3)是一个经典的Java Web开发框架组合,常用于构建高效、可维护的企业级应用。这个压缩包文件"SSH.zip"和"gxsoft.zip"很可能是包含了一个使用SSH框架实现的示例项目...

    struts+hibernate入门实例(eclipse版)

    ### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...

    Eclipse+Struts+Hibernate的网络商店

    【Eclipse+Struts+Hibernate ...总的来说,Eclipse+Struts+Hibernate的网络商店项目是一个综合性的Web应用实例,它涵盖了前端交互、后端逻辑处理和数据存储的关键技术,为开发者提供了实践和学习Web开发的宝贵机会。

    struts+hibernate文件上传

    1. **Struts配置**:在`struts.xml`配置文件中,我们需要为文件上传的Action定义一个特定的拦截器栈,比如`fileUpload`拦截器,它允许处理文件流。同时,需要配置Action的`input`和`success`结果,以处理文件上传...

    网络硬盘(Struts 2+Hibernate+Spring实现)

    网络硬盘(Struts 2+Hibernate+Spring实现)网络硬盘(Struts 2+Hibernate+Spring实现)网络硬盘(Struts 2+Hibernate+Spring实现)网络硬盘(Struts 2+Hibernate+Spring实现)网络硬盘(Struts 2+Hibernate+Spring...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    14.4.2 在Eclipse下建立项目myEdition 14.4.3 编写本项目的Ant文件 14.4.4 配置本项目的web.xml文件 14.5 编写内容管理系统的JSP页面 14.5.1 用户注册画面regedit.jsp 14.5.2 用户登录画面login.jsp 14.5.3 设定内容...

Global site tag (gtag.js) - Google Analytics