SSH构架的配置
上次已经说了工程的创建,这次说说为工程添加配置的过程。
一、数据库-配置数据连接池
2、 在applicationContext.xml文件中添加配置文件:
<!--数据库-配置数据连接池 --> <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/dbssh"> </property> <property name="username" value="root"></property> <property name="password" value="123456"></property> <property name="maxActive" value="100"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean>
2、将老师给的数据库工具mysql-5.1.49-win32放到D盘,将驱动包mysql-connector-java-5.1.41-bin拷到lib文件夹下。(或者其他盘也可以,只要注意改写脚本路径即可)。
cd D:\mysql-5.1.49-win32\bin pushd D: mysql.exe pause
打开startmysql启动数据库,单击连接->MySQl ,输入名字密码测试连接,成功后点击OK。在双击admin -> dbss,即可创建表格。这我创建的table是cust。
过程如下图:
3、再在applicationContext.xml添加如下配置文件:
<!--sessionFactory配置与管理 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>com/crm/bean/Cust.hbm.xml</value> </list> </property> </bean>
三、
前话:在小学期老师带着做的工程中,添加的动作有有保存、删除、查询、条件查询、修改预览、修改等,当然少不了其中还有各个活动间的链接(跳转)活动操作。这里直接给出的是关于“客户信息维护”的包含各种操作的完整代码的。但在做的过程中是一点点添加的。同时不要忘记在applicationContext.xml和struts.xml中添加相应的配置文件。
1、
1、为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容:
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
2、在src文件下新建com.crm.bean包,并在其下新建Class文件Cust.Java和Cust.hbm.xml文件
package com.crm.bean; public class Cust { private int id; private String custno; private String custname; private String sex; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCustno() { return custno; } public void setCustno(String custno) { this.custno = custno; } public String getCustname() { return custname; } public void setCustname(String custname) { this.custname = custname; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
<?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"> <hibernate-mapping> <class name="com.crm.bean.Cust" table="cust"> <id name="id" type="java.lang.Integer" column="id"> <generator class="increment"></generator> </id> <property name="custno" type="string" column="custno" length="20"/> <property name="custname" type="string" column="custname" length="100"/> <property name="sex" type="string" column="sex" length="2"/> </class> </hibernate-mapping>
3、在src文件下新建com.crm.dao包,并在其下新建Class文件CustDao.Java
package com.crm.dao; import java.util.List; import com.crm.bean.Cust; public interface CustDao { /** * 保存客户信息 * @param cust */ public void saveCustomer(Cust cust); /** * 删除客户信息 * @param cust */ public void removeCustomer(Cust cust); /** * 查询客户信息 * @param id * @return */ public Cust findCustomerById(Integer id); /** * 查询所有客户信息 * @param id * @return */ public List<Cust> findAllCust(); /** * 通过条件查询客户信息 * @param cust * @return */ public List<Cust> findCustByCondition(Cust cust); /** * 修改客户信息 * @param cust */ public void updateCustomer(Cust cust); }
4、在src文件下新建名为struts.xml的文件。
5、在src文件下新建com.crm.impl包,并在其下新建Class文件CustDaoImpl.Java
package com.crm.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.crm.bean.Cust; import com.crm.dao.CustDao; public class CustDaoImpl extends HibernateDaoSupport implements CustDao{ @SuppressWarnings("unchecked") public List<Cust> findAllCust() { // // TODO Auto-generated method stub String hql = "from Cust cust order by cust.id desc"; return (List<Cust>)this.getHibernateTemplate().find(hql); } public Cust findCustomerById(Integer id) { // TODO Auto-generated method stub Cust cust = (Cust)this.getHibernateTemplate().get(Cust.class,id); return cust; } public void removeCustomer(Cust cust) { // TODO Auto-generated method stub this.getHibernateTemplate().delete(cust); } public void saveCustomer(Cust cust) { // TODO Auto-generated method stub this.getHibernateTemplate().save(cust); } @SuppressWarnings("unchecked") public List<Cust> findCustByCondition(Cust cust) { // TODO Auto-generated method stub StringBuffer strBuffer = new StringBuffer(); String hql = "from Cust cust where 1=1 "; strBuffer.append(hql); if(cust == null){ throw new NullPointerException("查询条件不能为空!"); } if(!"".equals(cust.getCustname())){ String custname = " and custname = ‘"+cust.getCustname()+"‘"; strBuffer.append(custname); } if(!"".equals(cust.getCustno())){ String custname = " and custno = ‘"+cust.getCustno()+"‘"; strBuffer.append(custname); } String orderBy = " order by cust.id desc"; strBuffer.append(orderBy); List<Cust> custList = this.getHibernateTemplate().find(strBuffer.toString()); //return (List<Cust>)this.getHibernateTemplate().find(strBuffer.toString()); return custList; //返回调用 } public void updateCustomer(Cust cust) { // TODO Auto-generated method stub this.getHibernateTemplate().update(cust); } }
6、在src文件下新建com.crm.service包,并在其下新建Class文件CustService.Java
注:将CustDao.Java中的
public interface CustDao
改为
public interface CustService
即可。
7、在src文件下新建com.crm.service包,并在其下新建Class文件CustServiceImpl.Java
同上,将com.crm.impl中的
public class CustDaoImpl extends HibernateDaoSupport implements CustDao{
改为
public class CustServiceImpl implements CustService{
8、在src文件下新建com.crm.action包,并在其下新建Class文件(根据添加的操作新建class文件)。例子中添加的动作有:
- 保存。
package com.crm.action; import java.util.ArrayList; import java.util.List; import com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionSupport; public class CustSaveAction extends ActionSupport{ private CustService service; private Cust cust; List strList = new ArrayList(); public List getStrList() { return strList; } public void setStrList(List strList) { this.strList = strList; } public Cust getCust() { return cust; } public void setCust(Cust cust) { this.cust = cust; } public CustService getService() { return service; } public void setService(CustService service) { this.service = service; } @Override public String execute() throws Exception { // TODO Auto-generated method stub this.service.saveCustomer(cust); return SUCCESS; } }
- 链接。
package com.crm.action; import java.util.Map; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class ListCustomerAcion extends ActionSupport{ private CustService listAllService; public void setListAllService(CustService listAllService) { this.listAllService = listAllService; } @SuppressWarnings("unchecked") @Override public String execute() throws Exception { Map map = (Map)ActionContext.getContext().get("request"); map.put("list", this.listAllService.findAllCust()); return SUCCESS; } }
- 删除。
package com.crm.action; import com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class RemoveCustomerAcion extends ActionSupport{ private Cust customer; private CustService removeService; public Cust getCustomer() { return customer; } public void setCustomer(Cust customer) { this.customer = customer; } public void setRemoveService(CustService removeService) { this.removeService = removeService; } @SuppressWarnings("unchecked") @Override public String execute() throws Exception { this.removeService.removeCustomer(customer); return SUCCESS; } }
- 查询。
//ID查询: package com.crm.action; ort com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionSupport; public class CustFindByIdAction extends ActionSupport { private CustService custFindByIdService; private Cust customer; public void setCustFindByIdService(CustService custFindByIdService) { this.custFindByIdService = custFindByIdService; } public Cust getCustomer() { return customer; } public void setCustomer(Cust customer) { this.customer = customer; } public CustService getCustFindByIdService() { return custFindByIdService; }
public String execute() throws Exception {
// TODO Auto-generated method stub
this.custFindByIdService.findCustomerById(customer.getId());
return SUCCESS;
}
}
条件查询: package com.crm.action; import java.util.Map; import com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class FindCustByCdtAcion extends ActionSupport{ private Cust cust; private CustService findCdtService; public Cust getCust() { return cust; } public void setCust(Cust cust) { this.cust = cust; } public CustService getFindCdtService() { return findCdtService; } public void setFindCdtService(CustService findCdtService) { this.findCdtService = findCdtService; } @SuppressWarnings({ "unchecked", "unchecked" }) @Override public String execute() throws Exception { // TODO Auto-generated method stub Map map = (Map)ActionContext.getContext().get("request"); map.put("list", this.findCdtService.findCustByCondition(cust)); return SUCCESS; } }
- 修改。
//修改预览: package com.crm.action; import com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionSupport; public class UpdatePreviewCustAction extends ActionSupport { private CustService updatePreviewCustService; private Cust customer; public Cust getCustomer() { return customer; } public void setCustomer(Cust customer) { this.customer = customer; } public CustService getUpdatePreviewCustService() { return updatePreviewCustService; } public void setUpdatePreviewCustService(CustService updatePreviewCustService) { this.updatePreviewCustService = updatePreviewCustService; } @Override public String execute() throws Exception { // TODO Auto-generated method stub customer = this.updatePreviewCustService.findCustomerById(customer .getId()); return SUCCESS; } }
//修改: package com.crm.action; import java.util.ArrayList; import java.util.List; import com.crm.bean.Cust; import com.crm.service.CustService; import com.opensymphony.xwork2.ActionSupport; public class UpdateCustAction extends ActionSupport { private CustService updateCustService; private Cust customer; List strList = new ArrayList(); public List getStrList() { return strList; } public void setStrList(List strList) { this.strList = strList; } public CustService getUpdateCustService() { return updateCustService; } public void setUpdateCustService(CustService updateCustService) { this.updateCustService = updateCustService; } public Cust getCustomer() { return customer; } public void setCustomer(Cust customer) { this.customer = customer; } @Override public String execute() throws Exception { // TODO Auto-generated method stub this.customer.setSex(this.strList.get(0).toString()); this.updateCustService.updateCustomer(customer); return SUCCESS; } }
网页的效果界面:
进入http://127.0.0.1:8080/sshtest,点击客户信息管理。
点击新增,
在弹出的界面输入信息,点击保存。
可以查询到插入的数据,
数据中也会更新插入的数据: