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,点击客户信息管理。
点击新增,
在弹出的界面输入信息,点击保存。
可以查询到插入的数据,
数据中也会更新插入的数据:
原文链接:https://www.cnblogs.com/xxw-ak/p/7106640.html