Hibernate-03新建客户代码实现

Hibernate完成添加客户

Hibernate-03新建客户代码实现Hibernate-03新建客户代码实现



Servlet

package com.feizhu.servlet;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.apache.commons.beanutils.BeanUtils;


import com.feizhu.domain.Customer;
import com.feizhu.service.SaveCustomerService;


/**
 * Servlet implementation class SaveCustomerServlet
 */
public class SaveCustomerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//设置编码
request.setCharacterEncoding("utf-8");
//接受参数
Map<String, String[]> map = request.getParameterMap();
//封装数据  导入BeanUtils工具包
Customer  c=new Customer();
try {
//封装数据
BeanUtils.populate(c, map);
//调用SaveCustomerService  业务层
       new SaveCustomerService().saveCustomer(c);
       System.out.println("客户添加成功");
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);
}

}

service

package com.feizhu.service;


import com.feizhu.dao.SaveCustomerDao;
import com.feizhu.domain.Customer;


public class SaveCustomerService {


/**
* 保存客户
* @param c
*/
public void saveCustomer(Customer c) {
//调用SaveCustomerDao 
new SaveCustomerDao().saveCustomer(c);

}


}

Dao

package com.feizhu.dao;


import org.hibernate.Session;
import org.hibernate.Transaction;


import com.feizhu.domain.Customer;
import com.feizhu.utils.HibernateUtil;


public class SaveCustomerDao {


/**
* 保存客户
* @param c
*/
public void saveCustomer(Customer c) {
//获取session
Session session = HibernateUtil.openSession();
//开启事物
Transaction tr = session.beginTransaction();
//保存用户
session.save(c);
//提交事物
tr.commit();
//关闭资源
session.close();

}

}

 HibernateUtil

package com.feizhu.utils;


import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class HibernateUtil {


// 会话工厂,以单例方式管理
private static SessionFactory sessionFactory;


// ThreadLocal存储session
private static ThreadLocal<Session> session = new ThreadLocal<Session>();




// 以单例方式管理sessionFactory
static {
try {
sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
} catch (HibernateException e) {
e.printStackTrace();
throw new HibernateException("初始化会话工厂失败!");
}


}
//得到一个单例的会话工厂
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
//获取一个新session
public static Session openSession(){
return sessionFactory.openSession();
}

//获取当前与线程绑定的session,如果获取不到则创建一个新session并与当前线程绑定
// public static Session getCurrentSession() throws HibernateException {
// //获取当前线程绑定的session
// Session s = (Session) session.get();
// if (s == null) {
// //创建一个新session
// s = sessionFactory.openSession();
// //新session并与当前线程绑定
// session.set(s);
// }
// return s;
// }
 
public static Session getCurrentSession() throws HibernateException {
return sessionFactory.getCurrentSession(); 
}
//关闭当前线程绑定的session
// public static void closeSession() throws HibernateException {
// //获取当前线程绑定的session
// Session s = (Session) session.get();
// if (s != null){
// //关闭session
// s.close(); 
// }
// session.set(null);
// }

public static void closeSession() throws HibernateException {
sessionFactory.getCurrentSession().close();
}
}