第一步:准备Spring和hibernate 的必备jar 这几链接数据库用的c3p0
第二 步 :
在src 下创建Spring 的配置文件 在其中配置dataSource 的
配置数据库链接所不要的参数
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
<property name="jdbcUrl" value="jdbc:mysql:///day3?characterEncoding=utf-8">
</property>
</bean>
编写测试代码测试dataSource是否编写正确
ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
DataSource ds=ctx.getBean("dataSource",DataSource.class);
System.err.println(ds.getConnection());
如果有链接输入表是c3p0链接数据库成功
第三步:
在com.wuyihuai.domain 下创建Stud.java
package com.wuyihuai.domain;
public class Stud {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Stud [id=" + id + ", name=" + name + "]";
}
}
并在编写该目录下编写与之对应的hibernate的映射文件
Stud.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.wuyihuai.domain.Stud" table="stud">
<id name="id" column="stud_id" type="integer">
<generator class="increment"></generator>
</id>
<property name="name" column="stud_name" type="string"></property>
</class>
</hibernate-mapping>
在Spring配置文件中声明sessionFactory 用来接管前面的dataSource
<!-- 声明sessionFactory 接管上面的dataSoruce -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property nazaime="dataSource" ref="dataSource"></property>
<!--一下是设置hibernate的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!-- 配置*。hbm.xml 方法一 -->
<!-- <property name="mappingResources">
<list>
<value>com/wuyihuai/domain/Stud.hbm.xml</value>
</list>
</property> -->
<!-- 方法2 -->
<property name="mappingDirectoryLocations">
<list>
<!-- 加载该目录下的所有。hbm.xml文件 -->
<value>classpath:com/wuyihuai/domain</value>
</list>
</property>
</bean>
第四步
测试是否正确
package com.wuyihuai.demo;
import javax.sql.DataSource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.wuyihuai.domain.Stud;
public class Demo {
@Test
public void test()throws Exception{
ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
DataSource ds=ctx.getBean("dataSource",DataSource.class);
System.err.println(ds.getConnection());
SessionFactory sf=ctx.getBean("sessionFactory", SessionFactory.class);
Session s=sf.openSession();
System.err.println(s.connection());
Stud stud=new Stud();
stud.setName("SSSS");
s.beginTransaction();
s.save(stud);
s.getTransaction().commit();
}
}
下面是整个Spring的完整配置
<?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:context="http://www.springframework.org/schema/context"
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/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 创建dataSource链接书籍库 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
<property name="jdbcUrl" value="jdbc:mysql:///day3?characterEncoding=utf-8">
</property>
</bean>
<!-- 声明sessionFactory 接管上面的dataSoruce -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property nazaime="dataSource" ref="dataSource"></property>
<!--一下是设置hibernate的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<!-- 配置*。hbm.xml 方法一 -->
<!-- <property name="mappingResources">
<list>
<value>com/wuyihuai/domain/Stud.hbm.xml</value>
</list>
</property> -->
<!-- 方法2 -->
<property name="mappingDirectoryLocations">
<list>
<!-- 加载该目录下的所有。hbm.xml文件 -->
<value>classpath:com/wuyihuai/domain</value>
</list>
</property>
</bean>
</beans>