spring 整合 hibernate
1.闲话少说了,先看版本吧。
2.在看要导入的包吧:
其中打圈的,我在hibernate和spring的lib包中无法找到,要自己单独下载。
因为版本的原因,或许你下载的包可能会导致包无法找到,没有关系,有些事情总是试试才知道的。
这也是学习必经之路哦。
其中的dbcp 和pool 是spring配置数据源(数据库连接池要用到的),而slf4j的几个包,是由于看了马士兵视频
才养成这个习惯,整合的时候要用到这个log包。
?
3.整合
整个工程的样子
?
其中打红圈的是主运行类,会在下面打上代码。。。
?
-----------
?
基本的代码
Entity类,Item.java
?
package com.endual.domain;/** * @author Gavin King */public class Item {private Long id;private String name;private String description;public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}?
?
? Item.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"><hibernate-mappingpackage="com.endual.domain"><class name="Item" table="table_items"><id name="id"><generator /><property name="description" /></class></hibernate-mapping>?
?
??applicationContext.xml配置代码
? 我首先要向你强烈推荐的是spring的文档,里面有详细的配置信息哦。网上的资料都是那来的。
?
<?xml version="1.0" encoding="UTF-8"?><!--- Application context definition for JPetStore's business layer.- Contains bean references to the transaction manager and to the DAOs in- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").--><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"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.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><bean id="myDataSource"value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/test" /><property name="username" value="root" /><property name="password" value="root" /></bean><bean id="mySessionFactory"ref="myDataSource" /><property name="mappingResources"><list><value>com/endual/domain/Item.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop></props></property></bean><bean id="hibernateTemplete"ref="mySessionFactory"></property></bean><bean name="daoImpl" ref="mySessionFactory"></property></bean> <bean name="person" value="chenwei" /></bean></beans>?
?
? ? 你可能在这里会错误的:
?
? ??<property name="hibernateProperties">
<props><prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop></props></property>?
?因为文档中,用的HQL数据库吧,所有会导致我们的数据库自动建表的语句没有了。
?配置文件里面的信息不解释。
?
?
?Dao接口的代码
?package com.endual.test;
public interface Dao {public void save() ;}?
?
? DaoImpl.java代码
?
??package com.endual.test;
import org.springframework.dao.DataAccessException;import org.springframework.orm.hibernate3.HibernateTemplate;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.endual.domain.Item;public class DaoImpl extends HibernateDaoSupport implements Dao{public void save() {Item entity = new Item();entity.setName("dd") ;entity.setDescription("dd") ;try {this.getHibernateTemplate().save(entity) ;} catch (DataAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}//this.getHibernateTemplate().save(entity ) ;}}
?
?
? 主运行类:
?
??package com.endual.test;
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.endual.domain.Person;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub//DaoImpl dd = new DaoImpl() ;//dd.save() ;ApplicationContext application=new ClassPathXmlApplicationContext("/applicationContext.xml") ;DaoImpl dao =(DaoImpl)application.getBean("daoImpl");dao.save() ;//DaoImpl dd = new DaoImpl() ;//dd.save() ;}}?
?
?
?
?运行结果和SQL数据不显示,祝你成功吧。O(∩_∩)O
?
?
?
?
?
?
?
?
?
?
?
?
?