在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吧,建表:
(嘿嘿,这个是网上抄来的语句,这个不是重点,就不多说了)
2、hibernate.cfg.xml
路径src\hibernate.cfg.xml
这是个配置文件,里面包含了我们所要链接数据库的一些信息,例如用户名、密码之类的东东,内容如下:
其中的mapping一段,表示我们需要连接的一个表,这个配置文件我们马上就会遇到了,就是比较奇怪的是,如果这个项目用到100张表的话,这里不是要写100行,我的妈呀,代码泛滥呀。应该有更好的解决方案,后面再研究。
3、Customer.hbm.xml
路径:src\com\yeepal\test
这个文件要和相应的类(Customer.java)放在一起,内容如下:
4、Customer.java
这个文件是ORM对应的类,内容如下:
很长很长的内容吧,其实这里的内容,和之前Customer.hbm.xml里的内容是一一对应的,在实际项目中完全可以抄过来该改改改就OK了,敲那么多代码,想当神仙呀。
5、useHibernate.java
这个类用于启动Hibernate,内容如下:
这里的很多内容都是通用的,也就是说在实际项目中是完全可以抄过去用的。
6、CommonExample.java
由于我是想继续之前的实验(《在Eclipse下实践Struts(不用Struts IDE).二》)继续往下做,所以这里要写一个Action,内容如下:
7、修改struts.xml
添加一个Action,全文内容如下:
注意第二个action,我给他命个了名子叫commonexample,对应的类就是我们之前写的那个com.yeepal.test.CommonExample
8、commonexample.jsp
要有点展示吧,所以就写了个超级简单的页面,只有一个按钮,什么都没有,内容如下:
9、运行
前面的代码写完之后,部署起来,然后启动Tomcat,访问http://localhost:8080/cooltest/commonexample.jsp页面,可以看到只有一个按钮,点击这个按钮后,检查数据库,可以看到customers表里面多了一条记录。
10、下载
在这里可以下载到本文代码。
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、下载
在这里可以下载到本文代码。
相关推荐
以国内使用最广泛的Struts为例,其新版本Struts2与前一版Struts1.x已经有了天壤之别。Hibernate也从2.0升级为3.X,近期Spring也最新推出了2.5版。读者如果再参考以前的版本书籍学习,无异于南辕北辙,而《JavaWeb...
精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
基于Struts1的SSH整合架构,并开发个人通讯录和一个完整的办公自动化系统,实现的功能包括日程安排、工作日志、短消息管理、公告管理、会议管理;基于Struts2的SSH2整合架构,并在此架构基础上实现一个完整的办公...
整合Eclipse struts+hibernate+spring2
总之,"struts+hibernate+mysql做的增删改查小例子"是一个很好的实践平台,可以帮助你巩固和提升Java Web开发技能,尤其是对于MVC架构和ORM的理解。通过逐步学习和实践,你将能够独立地完成更复杂的应用开发任务。
在IT行业中,开发Java Web应用时常常会使用到一套名为SSH2(Struts2、Spring、Hibernate)的技术栈,这是一套成熟的后端框架组合,能够有效地帮助开发者构建高效、可维护的应用程序。本教程将详细讲解如何在Eclipse...
在"J2EE--Eclipse+Struts+Hibernate+Spring"的环境下,开发者通常会按照以下步骤进行开发: 1. **环境搭建**:首先安装Eclipse,然后通过插件如Spring Tool Suite(STS)来增强对Spring的支持。接着,配置JDK和J2EE...
总的来说,《在线购物Eclipse+Struts+Hibernate》是一个实用的学习资源,涵盖了Java Web开发中的关键技术和实践,对于想要提升自己在Java后端开发能力的程序员来说,是一份宝贵的资料。通过深入研究和实践,你将能够...
Java项目之图书管理系统源代码,使用了struts+hibernate+spring等技术,需要的小伙伴不要错过了。Java项目之图书管理系统源代码,使用了struts+hibernate+spring等技术,需要的小伙伴不要错过了。
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电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...
在IT行业中,SSH(Struts2 + Spring3 + Hibernate3)是一个经典的Java Web开发框架组合,常用于构建高效、可维护的企业级应用。这个压缩包文件"SSH.zip"和"gxsoft.zip"很可能是包含了一个使用SSH框架实现的示例项目...
### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...
【Eclipse+Struts+Hibernate ...总的来说,Eclipse+Struts+Hibernate的网络商店项目是一个综合性的Web应用实例,它涵盖了前端交互、后端逻辑处理和数据存储的关键技术,为开发者提供了实践和学习Web开发的宝贵机会。
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...
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 设定内容...