手把手叫你从头搭建SSH2项目(一)(原创)

手把手叫你从头搭建SSH2项目(一)(原创)搭配环境:jdk6+myeclipse8.5+tomcat6(自己配置到myeclipse8中)+mysql+spring3.0+hibernate3.3+struts2 

项目名称:员工管理(Employee)

好了,开始我们的第一个ssh2之旅吧。 

废话不说直接上图:完成后的项目结构图

手把手叫你从头搭建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,如图 

手把手叫你从头搭建SSH2项目(一)(原创)

第三步 MySQL JDBC驱动copylib目录下

手把手叫你从头搭建SSH2项目(一)(原创)

   然后我们建好文件夹用来区分自己的类之间区别,磨刀不误砍柴工,先做好前面的工作,事倍功半

 手把手叫你从头搭建SSH2项目(一)(原创)

第四步 从主菜单栏,选中Windows Open Perspective --> Other MyEclipse Database Explorer,打开MyEclipse Database Explorer视图。

 

手把手叫你从头搭建SSH2项目(一)(原创)

点击鼠标右键 --->New(创建一个新的数据库连接),进入如下图所示:

手把手叫你从头搭建SSH2项目(一)(原创)

注:上图中 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项,跳出如图 

 手把手叫你从头搭建SSH2项目(一)(原创)

务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next

 手把手叫你从头搭建SSH2项目(一)(原创)

去掉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项,跳出如图 

手把手叫你从头搭建SSH2项目(一)(原创)

手把手叫你从头搭建SSH2项目(一)(原创)

选中上述5项后点击 Next

 

 手把手叫你从头搭建SSH2项目(一)(原创)

点击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,如图

手把手叫你从头搭建SSH2项目(一)(原创)

手把手叫你从头搭建SSH2项目(一)(原创)

(注:上图中我们勾选了Java Data Access Obeject(DAO)是为了找一个有可以自动创建了日志类的模板,

  因为这是第一个SSH2的项目,如果你以前有就不勾选了)

单击Next

手把手叫你从头搭建SSH2项目(一)(原创)

单击Next

 

 

单击finish,查看你的src下com—>ucap—>emp—pojo文件夹下的文件,生成6个文件如下

手把手叫你从头搭建SSH2项目(一)(原创)

 

为了方便使用,我们对这6个修改(就是把第一个TEmployee类,改为Employee,删除第一二三个类,修改映射文件,将TEmplyeeDAO.java文件修改为EmployeeDaoImp.java,然后放到dao文件下面)

  手把手叫你从头搭建SSH2项目(一)(原创)

这六个文件修改成这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;

    }

   

}

 

 

 其映射文件Employee.hbm.xml代码如下
<?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;

        }

    }

}

 

页面太长了,我写下一篇了

 

你可能感兴趣的:(ssh2)