spring + hibernate 配置
http://hi.baidu.com/xogjghsfhjemorr/item/cea598dd22e75e2a39f6f726
applicationContext.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="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:/deploy.properties</value> </property> </bean> <!-- 注入数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="url"> <value>${database.url}</value> </property> <property name="driverClassName"> <value>${database.driver}</value> </property> <property name="username"> <value>${database.username}</value> </property> <property name="password"> <value>${database.password}</value> </property> <property name="maxWait"> <value>5000</value> </property> <property name="maxIdle"> <value>5</value> </property> <property name="maxActive"> <value>50</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!--hibernate数据源配置,如果启用的话,则使用Apache DBCP提供的连接池,而不是下面指定的C3P0,用spring 就要用到--> <property name="dataSource"> <ref local="dataSource" /><!-- 注入数据源 --> </property> <!-- hibernate 参数设置 --> <property name="hibernateProperties"> <props> <!-- 指定Hibernate的连接方言 org.hibernate.dialect.Oracle9Dialect--> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.connection.driver_class "> com.mysql.jdbc.Driver </prop> <prop key="hibernate.connection.url"> jdbc:mysql:http://localhost:3306/test </prop> <prop key="hibernate.connection.username">root</prop> <prop key="hibernate.connection.password">fytcm</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.c3p0.max_size">5</prop> <prop key="hibernate.c3p0.min_size">5</prop> <prop key="hibernate.c3p0.timeout">5000</prop> <prop key="hibernate.c3p0.max_statements">100</prop> <prop key="hibernate.c3p0.idle_test_period">3000</prop> <prop key="hibernate.c3p0.acquire_increment">2</prop> <prop key="hibernate.c3p0.validate">false</prop> <prop key="hibernate.cglib.use_reflection_optimizer"> false </prop> <prop key="hibernate.jdbc.fetch_size">50</prop> <prop key="hibernate.jdbc.batch_size">30</prop> <prop key="hibernate.use_outer_join">false</prop> </props> </property> <!--hibernate O/R mapping文件位置--> <property name="mappingResources"> <list> <value>config/hbm/Team.hbm.xml</value> </list> </property> <!-- 集体写入,放在文件夹中 <property name="mappingDirectoryLocations"> <list> <value>classpath:/config/hbm</value> </list> </property> --> </bean> <!--Hibernate模板定义--> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 持久层操作 --> <bean id="teamDao" class="com.zd.dao.impl.TeamDao"> <property name="hibernateTemplate"> <ref local="hibernateTemplate" /> </property> </bean> </beans> ============================================================== src/deploy.properties database.url =jdbc:mysql://localhost:3306/test database.driver =com.mysql.jdbc.Driver database.username =root database.password =fytcm ====================================================== web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param> <!-- <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> --> <!-- OR USE THE CONTEXTLOADERSERVLET INSTEAD OF THE LISTENER --> <servlet> <servlet-name>context</servlet-name> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>teamAction</servlet-name> <servlet-class>com.zd.action.teamAction</servlet-class> </servlet> <servlet-mapping> <servlet-name>teamAction</servlet-name> <url-pattern>/servlet/teamAction</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ================================================= teamAction package com.zd.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.zd.bean.Team; import com.zd.dao.ITeamDao; public class teamAction extends HttpServlet { /** * Constructor of the object. */ public teamAction() { super(); } private WebApplicationContext ctx; public WebApplicationContext getCtx() { return ctx; } public ITeamDao teamDao; /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext servletContext = getServletContext(); this.ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); teamDao = (ITeamDao) this.getCtx().getBean("teamDao"); Team team = new Team(); team.setName("Java Team"); teamDao.saveTeam(team); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the GET method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occure */ public void init() throws ServletException { // Put your code here } } =============================== package com.zd.dao; import com.zd.bean.Team; public interface ITeamDao { void saveTeam(Team team); Team getTeam(Integer id); void updateTeam(Team team); void deleteTeam(Integer id); } ======================================= package com.zd.dao.impl; import java.util.List; import org.hibernate.SessionFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.zd.bean.Team; import com.zd.dao.ITeamDao; public class TeamDao extends HibernateDaoSupport implements ITeamDao{ public void deleteTeam(Integer id) { // TODO Auto-generated method stub } public Team getTeam(Integer id) { return (Team) this.getHibernateTemplate().get(Team.class, id); } public void saveTeam(Team team) { getHibernateTemplate().save(team); } public void updateTeam(Team team) { getHibernateTemplate().update(team); } public static void main(String[] args) { // ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); // SessionFactory sessionFactory = (SessionFactory) ctx.getBean("sessionFactory"); // HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory); // List list = hibernateTemplate.find("from Team where id=1"); // Team t = (Team) list.get(0); // System.out.println(t.getName()); } }