本篇我们进行内容的填充,让项目运行起来
先来看一下项目结构图:
第一步:配置实体层和响应的映射文件
package cn.itcast.crm.entity;
public class Customer {
private Long custId;
private String custName;
private Long custUserId;
public Long getCustId() {
return custId;
}
public void setCustId(Long custId) {
this.custId = custId;
}
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public Long getCustUserId() {
return custUserId;
}
public void setCustUserId(Long custUserId) {
this.custUserId = custUserId;
}
}
package cn.itcast.crm.entity;
// Generated 2009-11-6 10:02:01 by Hibernate Tools 3.2.2.GA
/**
* Order generated by hbm2java
*/
public class Order implements java.io.Serializable {
private long id;
private String orderNumber;
private Customer customer;
public Order() {
}
public Order(Customer customer) {
this.customer = customer;
}
public Order(String orderNumber, Customer customer) {
this.orderNumber = orderNumber;
this.customer = customer;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public String getOrderNumber() {
return this.orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public Customer getCustomer() {
return this.customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
package cn.itcast.crm.entity;
public class Page {
private int start=1;
private int pageSize=1;
private int count=1;
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
customer.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-2-26 16:58:40 by Hibernate Tools 4.3.1.Final -->
<hibernate-mapping>
<class name="cn.itcast.crm.entity.Customer" table="customer" optimistic-lock="version">
<id name="custId" type="java.lang.Long">
<column name="cust_id" />
<generator class="identity" />
</id>
<property name="custName" type="string">
<column name="cust_name" length="32" not-null="true"></column>
</property>
<property name="custUserId" type="java.lang.Long">
<column name="cust_user_id"></column>
</property>
</class>
</hibernate-mapping>
order.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.crm.entity">
<class name="Order" table="orders">
<id name="id" column="ID" type="long">
<generator class="increment">
</generator>
</id>
<property name="orderNumber" column="Order_Number" type="string">
</property>
<many-to-one
name="customer"
column="cust_id"
class="Customer"
cascade="save-update"
not-null="true"
lazy="false">
</many-to-one>
</class>
</hibernate-mapping>
第二步:配置DAO层
customerDao.java
package cn.itcast.crm.dao;
import java.util.List;
import cn.itcast.crm.entity.Customer;
public interface CustomerDao {
/**
* 根据ID获取客户信息
* @param id
* @return
*/
public Customer findById(Long id);
public void saveCustomer(Customer customer);
public void updateCustomer(Long id);
public void deleteCustomer(Customer customer);
public <T> List<T> findByHql(String hql);
public <T> List<T> findByHqlPage(int start ,int count);
public int getCount();
}
实现类customerDaoImpl.java
package cn.itcast.crm.dao.impl;
import java.util.List;
import org.hibernate.Query;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import cn.itcast.crm.dao.CustomerDao;
import cn.itcast.crm.entity.Customer;
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {
@Override
public Customer findById(Long id) {
return this.getHibernateTemplate().get(Customer.class, id);
}
@Override
public void saveCustomer(Customer customer) {
this.getHibernateTemplate().save(customer);
}
@Override
public void updateCustomer(Long id) {
// TODO Auto-generated method stub
Customer c=this.getHibernateTemplate().get(Customer.class, id);
c.setCustName("fengxiankai");
}
@Override
public void deleteCustomer(Customer customer) {
// TODO Auto-generated method stub
this.getHibernateTemplate().delete(customer);
}
public <T> List<T> findByHql(String hql) {
List list=null;
try{
list=(List<T>)this.getHibernateTemplate().find(hql);
// Query query=this.currentSession().createQuery(hql);
// query.setString(0, id);
}catch(Exception e){
throw new RuntimeException();
}
return list;
}
public <T> List<T> findByHqlPage(int start ,int count) {
List list=null;
try{
String hql="from Customer";
Query query=this.currentSession().createQuery(hql);
list=(List<T>)query.setFirstResult(start).setMaxResults(count).list();
}catch(Exception e){
throw new RuntimeException();
}
return list;
}
public int getCount(){
int result=0;
try{
String hql="select count(*) from Customer";
Query query=this.currentSession().createQuery(hql);
result=((Long)query.uniqueResult()).intValue();
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException();
}
return result;
}
}
orderDao.java
package cn.itcast.crm.dao;
import cn.itcast.crm.entity.Order;
public interface OrderDao {
public void saveOrder(Order order);
public Order findById(Long id);
}
orderDaoImpl.java
package cn.itcast.crm.dao.impl;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import cn.itcast.crm.dao.OrderDao;
import cn.itcast.crm.entity.Order;
public class OrderDaoImpl extends HibernateDaoSupport implements OrderDao{
@Override
public void saveOrder(Order order) {
// TODO Auto-generated method stub
Session s=this.getSessionFactory().openSession();
Transaction tx=s.beginTransaction();
try{
s.save(order);
tx.commit();
}catch(Exception e){
tx.rollback();
}
}
@Override
public Order findById(Long id) {
// TODO Auto-generated method stub
return null;
}
}
第三步:配置serice层
customer.service
package cn.itcast.crm.service;
import java.util.List;
import cn.itcast.crm.entity.Customer;
public interface CustomerService {
/**
* 根据ID获取客户信息
* @param id
* @return
*/
public Customer findById(Long id);
public void saveCustomer(Customer customer);
public void updateCustomer(Long id);
public void deleteCustomer(Long id);
public List<Customer> findByHql(Long id);
public List<Customer> findByHqlPage(int start ,int count);
public int getCount();
}
order.service
package cn.itcast.crm.service;
import cn.itcast.crm.entity.Order;
public interface OrderService {
public void saveOrder();
public Order findById(Long id);
}
customerServiceImpl.java
package cn.itcast.crm.service.impl;
import java.util.List;
import cn.itcast.crm.dao.CustomerDao;
import cn.itcast.crm.entity.Customer;
import cn.itcast.crm.service.CustomerService;
public class CustomerServiceImpl implements CustomerService {
private CustomerDao customerDao;
public void setCustomerDao(CustomerDao customerDao) {
this.customerDao = customerDao;
}
@Override
public Customer findById(Long id) {
return customerDao.findById(id);
}
@Override
public void saveCustomer(Customer customer) {
customerDao.saveCustomer(customer);
}
@Override
public void updateCustomer(Long id) {
// TODO Auto-generated method stub
customerDao.updateCustomer(id);
}
@Override
public void deleteCustomer(Long id) {
// TODO Auto-generated method stub
Customer c=customerDao.findById(id);
customerDao.deleteCustomer(c);
}
@Override
public List<Customer> findByHql(Long id) {
// TODO Auto-generated method stub
String hql="from Customer where id="+id;
List<Customer> list=customerDao.findByHql(hql);
return list;
}
@Override
public List<Customer> findByHqlPage(int start, int count) {
// TODO Auto-generated method stub
List<Customer> list=customerDao.findByHqlPage( start, count);
return list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return customerDao.getCount();
}
}
orderServiceImpl.java
package cn.itcast.crm.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import cn.itcast.crm.dao.OrderDao;
import cn.itcast.crm.entity.Customer;
import cn.itcast.crm.entity.Order;
import cn.itcast.crm.service.OrderService;
public class OrderServiceImpl implements OrderService{
@Autowired
private OrderDao orderDao;
@Override
public void saveOrder() {
// TODO Auto-generated method stub
Customer customer=new Customer();
customer.setCustName("hanxiao");
Order order=new Order();
order.setCustomer(customer);
order.setOrderNumber("5201314");
orderDao.saveOrder(order);
}
@Override
public Order findById(Long id) {
// TODO Auto-generated method stub
return null;
}
public OrderDao getOrderDao() {
return orderDao;
}
public void setOrderDao(OrderDao orderDao) {
this.orderDao = orderDao;
}
}
第四步:配置控制层action
customerAction.java
package cn.itcast.crm.action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import cn.itcast.crm.entity.Customer;
import cn.itcast.crm.entity.Page;
import cn.itcast.crm.service.CustomerService;
public class CustomerAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private Long custId;
private Customer customer;
private Page page;
private CustomerService customerService;
public void setCustomerService(CustomerService customerService) {
this.customerService = customerService;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public Long getCustId() {
return custId;
}
public void setCustId(Long custId) {
this.custId = custId;
}
public String findCustomerById(){
customer = customerService.findById(custId);
System.out.println("前端传过来的客户id是:"+custId);
return SUCCESS;
}
public String saveCustomer(){
System.out.println("前端传过来的客户name是:"+customer.getCustName());
customerService.saveCustomer(customer);
System.out.println("前端传过来的客户name是:"+customer.getCustName());
return SUCCESS;
}
public String updateCustomer(){
System.out.println("前端传过来的客户id是:"+custId);
customerService.updateCustomer(custId);
return SUCCESS;
}
public String deleteCustomer(){
System.out.println("前端传过来的客户id是:"+custId);
customerService.deleteCustomer(custId);
return SUCCESS;
}
public String findCustomerByHql(){
List<Customer> list=null;
list = customerService.findByHql(custId);
customer=list.get(0);
System.out.println("前端传过来的客户id是:"+custId);
return SUCCESS;
}
public String findCustomerByHqlPage(){
List<Customer> list=null;
list = customerService.findByHqlPage(page.getStart(), page.getCount());
customer=list.get(0);
System.out.println("前端传过来的客户id是:"+custId);
return SUCCESS;
}
public String getCount(){
int count=customerService.getCount();
System.out.println("前端传过来的客户id是:"+custId);
page=new Page();
page.setCount(count);
return SUCCESS;
}
public String execute(){
System.out.println("前端传过来的客户id22222222222222222");
return SUCCESS;
}
}
OrderAction.java
package cn.itcast.crm.action;
import org.springframework.beans.factory.annotation.Autowired;
import cn.itcast.crm.service.OrderService;
import com.opensymphony.xwork2.ActionSupport;
public class OrderAction extends ActionSupport{
@Autowired
private OrderService orderService;
private int OrderID;
public int getOrderID() {
return OrderID;
}
public void setOrderID(int orderID) {
OrderID = orderID;
}
public OrderService getOrderService() {
return orderService;
}
public void setOrderService(OrderService orderService) {
this.orderService = orderService;
}
public String saveOrder(){
orderService.saveOrder();
System.out.println("111");
return SUCCESS;
}
}
至此内容填充完毕。