搭配环境:jdk6+myeclipse8.5+tomcat6(自己配置到myeclipse8中)+mysql+spring3.0+hibernate3.3+struts2
项目名称:员工管理(Employee)
好了,开始我们的第一个ssh2之旅吧。
废话不说直接上图:完成后的项目结构图
首先先分析一下我们的第一个ssh2项目的需求,简单的说就是有一张员工表单,让你实现增删改查操作。
第一步:。我们首先新建一张mysql数据表。
sql:
CREATE TABLE `t_employee` (
`Id` int(11) NOT NULL auto_increment,
`Name` varchar(20) default NULL,
`Age` varchar(20) default NULL,
`Sex` varchar(20) default NULL,
`Tel` varchar(20) default NULL,
`Address` varchar(20) default NULL,
PRIMARY KEY (`Id`)
)
数据表创建完之后打开你的myeclipse8.5,建议不要用myeclipse10(太卡了,有木有?什么它有javascript环境优势,有个什么用随便一个浏览器就能搞定,还需要myeclipse10?)
第二步 打开myeclipse,新建一个web项目,命名为Employee_SSH, java ee规范我们选择5,如图
第三步 将MySQL JDBC驱动copy到lib目录下
然后我们建好文件夹用来区分自己的类之间区别,磨刀不误砍柴工,先做好前面的工作,事倍功半
第四步 从主菜单栏,选中Windows Open Perspective --> Other MyEclipse Database Explorer,打开MyEclipse Database Explorer视图。
点击鼠标右键 --->New(创建一个新的数据库连接),进入如下图所示:
注:上图中 Driver JARS 中添加的就是我们在第二部添加的msql的jdbc驱动。
有人问了问什么要创建?
回答:为了在Hibernate在创建持久化类的时候不要自己手动创建,直接用这个数据库连接就可以自动创建,开发的时候就会节省很多时间
第五步 开始搭建Hibeinate框架,用myeclipse插件(简单方便)(还有有人问了,不是先搭建Spring框架吗?
答案是:没必要,主要区别就是你的项目中是否有Hibeinate配置文件hibernate.cfg.xml,如果先搭建Spring框架的话就不用生产hibernate.cfg.xml,
因为在Spring的配置文件applicationConten.xml文件中会配置和数据库连接有关的信息。下面内容中你会看到这2种的不同)
导入Hibeinate的各个jar,步骤如下:
(1)选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳出如图
务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next,
去掉specify database……复选框,next,去掉create session……复选框,finish。
这时你会看到在你的项目下的 src文件下生成了hibernate.cfg.xm文件,其代码如下:
<?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"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://localhost:3306/chat</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="show_sql">true</property> <property name="myeclipse.connection.profile">emp</property> </session-factory> </hibernate-configuration>
第六步 开始搭建Hibeinate框架导入ssh2的各个jar,步骤如下:
选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳出如图
选中上述5项后点击 Next
点击finish 完成。
其自动生成了spring的配置文件applicationContent.xml文件,其代码为:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:p="http://www.springframework.org/schema/p" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 7 8 9 <bean id="sessionFactory" 10 class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 11 <property name="configLocation" 12 value="classpath:hibernate.cfg.xml"> 13 </property> 14 </bean></beans>
其中我们就可以看到在创建sessionFactory时我们加载了先前生成的hibernate.cfg.xml文件。
上面我们讨论了先搭建Hibernate才有hibernate.cfg.xml文件,如果我们先搭建Spring框架时,就没有hibernate.cfg.xml文件,那么它的数据库连接就是在
applicationContent.xml文件配置了,代码如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" ></property> <property name="url" value="jdbc:mysql://localhost:3306/chat" ></property> <property name="username" value="root"></property> <property name="password" value="root" ></property> </bean></beans>
第七步 我们的目的是在src下建好的文件夹分别为com下 com—>ucap—>emp—pojo中添加持久化类,从第四部(从主菜单栏,选中Windows Open Perspective --> Other MyEclipse Database Explorer,打开MyEclipse Database Explorer视图)中打开以创建的数据库连接emp,找到我们创建的表t_employee后,选中数据库表t_employee,右击,选择菜单Hibernate Reverse Engineering…,将启动Hibernate Reverse Engineering向导,生成实体类为Employee。,如图
(注:上图中我们勾选了Java Data Access Obeject(DAO)是为了找一个有可以自动创建了日志类的模板,
因为这是第一个SSH2的项目,如果你以前有就不勾选了)
单击Next
单击Next
单击finish,查看你的src下com—>ucap—>emp—pojo文件夹下的文件,生成6个文件如下
为了方便使用,我们对这6个修改(就是把第一个TEmployee类,改为Employee,删除第一二三个类,修改映射文件,将TEmplyeeDAO.java文件修改为EmployeeDaoImp.java,然后放到dao文件下面)
这六个文件修改成这3个文件,其中持久化类Employee.java 代码如下:
package com.ucap.emp.pojo; /** * TEmployee entity. @author MyEclipse Persistence Tools */ public class Employee implements java.io.Serializable { // Fields private int id; private String name; private String age; private String sex; private String tel; private String address; // Property accessors public int getId() { return this.id; } public void setId(int id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getAge() { return this.age; } public void setAge(String age) { this.age = age; } public String getSex() { return this.sex; } public void setSex(String sex) { this.sex = sex; } public String getTel() { return this.tel; } public void setTel(String tel) { this.tel = tel; } public String getAddress() { return this.address; } public void setAddress(String address) { this.address = address; } }
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.ucap.emp.pojo.Employee" table="t_employee" > <id name="id" type="java.lang.Integer"> <column name="Id" /> <generator class="increment"/> </id> <property name="name" type="java.lang.String"> <column name="Name" length="20" /> </property> <property name="age" type="java.lang.String"> <column name="Age" length="20" /> </property> <property name="sex" type="java.lang.String"> <column name="Sex" length="20" /> </property> <property name="tel" type="java.lang.String"> <column name="Tel" length="20" /> </property> <property name="address" type="java.lang.String"> <column name="Address" length="20" /> </property> </class> </hibernate-mapping>
而我们的dao文件夹下面有EmployeeDaoImp.java文件代码如下:
package com.ucap.emp.dao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ucap.emp.pojo.Employee; /** * A data access object (DAO) providing persistence and search support for TEmployee entities. * Transaction control of the save(), update() and delete() operations can directly support Spring container-managed transactions or they can be augmented to handle user-managed Spring transactions. Each of these methods provides additional information for how to configure it for the desired type of transaction control. * @see com.ucap.emp.pojo.TEmployee * @author MyEclipse Persistence Tools */ public class EmployeeDaoImp { private static final Logger log = LoggerFactory.getLogger(EmployeeDaoImp.class); public void save(Employee transientInstance) { log.debug("saving TEmployee instance"); try { //此处为我对数据的操作 log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } }
页面太长了,我写下一篇了