新增hibernate的相關jar包!
實體類:
- package com.spring.model;
- import javax.persistence.Entity;
- import javax.persistence.Id;
- import javax.persistence.Table;
- @Entity
- @Table(name="t_dog")
- public class DogPet {
- private int id;
- private String name;
- private int age;
- private String kind;
- private String sex;
- private String health;
- @Id
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getKind() {
- return kind;
- }
- public void setKind(String kind) {
- this.kind = kind;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public String getHealth() {
- return health;
- }
- public void setHealth(String health) {
- this.health = health;
- }
- public String toString()
- {
- return id+"--"+name+"--"+kind+"--"+age+"--"+health;
- }
- }
介面Service:
- package com.spring.service;
- public interface DogPetService {
- public void queryAllDogPets();
- public void saveDogPetByDataSource();
- public void saveDogPetByHibernate();
- }
實現類ServiceImpl:
- package com.spring.service.impl;
- import java.util.List;
- import java.util.Random;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Controller;
- import com.spring.service.DogPetService;
- import com.spring.dao.DogPetDAO;
- import com.spring.model.DogPet;
- @Controller(value="DogPetService")
- public class DogPetServiceImpl implements DogPetService{
- private DogPetDAO dogPetDAO;
- public DogPetDAO getDogPetDAO() {
- return dogPetDAO;
- }
- @Resource(name="dogPetDAO")
- public void setDogPetDAO(DogPetDAO dogPetDAO) {
- this.dogPetDAO = dogPetDAO;
- }
- @Override
- public void queryAllDogPets() {
- List<DogPet> list = dogPetDAO.queryAllDogPets();
- if(list != null)
- {
- for(DogPet d:list)
- {
- System.out.println(d.toString());
- }
- }
- }
- public void saveDogPetByDataSource()
- {
- DogPet d1 = new DogPet();
- d1.setId(new Random().nextInt(1000));
- d1.setName("dog1");
- d1.setAge(4);
- d1.setKind("buladuo");
- d1.setSex("B");
- d1.setHealth("good");
- dogPetDAO.saveDogPetByDataSource(d1);
- }
- public void saveDogPetByHibernate()
- {
- DogPet d1 = new DogPet();
- d1.setId(new Random().nextInt(1000));
- d1.setName("dog1");
- d1.setAge(4);
- d1.setKind("buladuo");
- d1.setSex("B");
- d1.setHealth("good");
- dogPetDAO.saveDogPetByHibernate(d1);
- }
- }
Service呼叫的DAO:
- package com.spring.dao;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import javax.annotation.Resource;
- import javax.sql.DataSource;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.springframework.stereotype.Service;
- import com.spring.model.DogPet;
- @Service(value="dogPetDAO")
- public class DogPetDAO {
- private DataSource dataSource;
- private SessionFactory sessionFactory;
- public List<DogPet> queryAllDogPets()
- {
- List<DogPet> list = new ArrayList<DogPet>();
- DogPet d1 = new DogPet();
- d1.setId(1111);
- d1.setName("dog1");
- d1.setAge(4);
- d1.setKind("buladuo");
- d1.setSex("B");
- d1.setHealth("good");
- DogPet d2 = new DogPet();
- d2.setId(2222);
- d2.setName("dog2");
- d2.setAge(3);
- d2.setKind("buladuo");
- d2.setSex("G");
- d2.setHealth("good");
- list.add(d1);
- list.add(d2);
- return list;
- }
- public void saveDogPetByDataSource(DogPet dog)
- {
- Connection connection = null;
- try
- {
- connection = dataSource.getConnection() ;
- PreparedStatement pstmt = connection.prepareStatement("insert into t_dog values(?,?,?,?,?,?)");
- pstmt.setInt(1, dog.getId());
- pstmt.setString(2, dog.getName());
- pstmt.setInt(3, dog.getAge());
- pstmt.setString(4, dog.getKind());
- pstmt.setString(5, dog.getSex());
- pstmt.setString(6, dog.getHealth());
- pstmt.execute();
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- connection.close();
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
- }
- public void saveDogPetByHibernate(DogPet dog)
- {
- Session session = null;
- try
- {
- session = sessionFactory.openSession();
- session.beginTransaction();
- session.save(dog);
- session.getTransaction().commit();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- session.close();
- }
- }
- public DataSource getDataSource() {
- return dataSource;
- }
- @Resource
- public void setDataSource(DataSource dataSource) {
- this.dataSource = dataSource;
- }
- public SessionFactory getSessionFactory() {
- return sessionFactory;
- }
- @Resource
- public void setSessionFactory(SessionFactory sessionFactory) {
- this.sessionFactory = sessionFactory;
- }
- }
配置檔案beans.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"
- xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
- xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <context:annotation-config/>
- <context:component-scan base-package="com.spring"></context:component-scan>
- </beans>
配置檔案dao.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" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <value>classpath:jdbc.properties</value>
- </property>
- </bean>
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${driver}" />
- <property name="url" value="${url}" />
- <property name="username" value="${user}" />
- <property name="password" value="${password}" />
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="annotatedClasses">
- <list>
- <value>com.spring.model.DogPet</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <value>
- hibernate.dialect=org.hibernate.dialect.MySQLDialect
- </value>
- </property>
- </bean>
- </beans>
test類:
- package com.spring.test;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.spring.service.DogPetService;
- public class ServiceTest {
- @Test
- public void saveDogPetByHibernate()
- {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml","dao.xml"});
- DogPetService dogPetService = (DogPetService)ctx.getBean("DogPetService");
- //dogPetService.saveDogPetByDataSource();
- //dogPetService.saveDogPetByHibernate();
- dogPetService.saveDogPetByHibernate();
- }
- }