spring结合hibernate的数据库操作

来源:互联网 发布:vb中的sum是什么意思 编辑:程序博客网 时间:2024/05/22 02:27

本例子为普通java项目,不是web项目

思路:

建一个和数据表对应的类取名为User,在其中定义字段。。

然后在同一个位置建对应的User.hbm.xml映射字段

在src下建UserDAOImp接口和UserDao其中是数据库操作

public class UserDao extends HibernateDaoSupport implements UserDaoImpl {

public void insertUser(User user) {

this.getHibernateTemplate().save(user);

}

在spring的配置文件 bean.xml中

配置datasource---->sessionFactory(datasource为参数)-------->配置UserDao(sessionfactory 为参数) 

Hibernate的连接,事务的管理等都有配置sessionfactory开始

在测试方法中和正常的一样,加载bean.xml,拿到Userdao ,然后调用Userdao中的数据库操作方法



---------------------------------------------------------------------------------------------------实现如下


package Dao;

public class User {


private String name;
public User() {

}
public User(String name, String password) {
super();
this.name = name;
this.password = password;
}
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}

--------------------------------------------------------------------

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="Dao">


    <class name="User" table="user">
        <id name="name" column="name">
            <generator class="assigned" />
        </id>
        <property name="password" column="password" not-null="true"
            />
        </class>
</hibernate-mapping>

-------------------------------------------------------------------

package Dao;


import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;


import javax.sql.DataSource;


import org.springframework.orm.hibernate3.support.HibernateDaoSupport;


public class UserDao extends HibernateDaoSupport implements UserDaoImpl {

public void insertUser(User user) {
this.getHibernateTemplate().save(user);

}

}


----------------------------------------------------------------------------------------------------


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="jdbc" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >  引入外部文件配置datasource
        <property name="locations" value="jdbc.properties"/>      
    </bean>  
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName">
   <value>${jdbc.driverClassName}</value>
   </property>
   <property name="url">
   <value>${jdbc.url}</value>
   </property>
   <property name="username">
   <value>${jdbc.username}</value>
   </property>
   <property name="password">
   <value>${jdbc.password}</value>
   </property>
   </bean>
   
   
   <bean id="sessionFactory"                                                                                              //配置sessionfactory 注入datasource                                                         
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
        <property name="dataSource"> 
           <ref bean="dataSource" /> 
        </property> 
        <property name="hibernateProperties"> 
            <props> 
               <prop key="hibernate.dialect"> 
                    org.hibernate.dialect.MySQLDialect 
                 </prop> 
               <prop key="hibernate.show_sql">true</prop> 
            </props> 
        </property> 
         <property name="mappingResources">    //引入hibernate的映射文件
         <value>Dao/User.hbm.xml</value> 
         </property> 

 </bean> 
   
   
  <bean id="userdao" class="Dao.UserDao">                                                        
<property name="sessionFactory" ref="sessionFactory"></property>                   注入sessionfactory
</bean>




  <!--  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
     <property  name="dataSource">
     <ref local="dataSource"/>
     </property>
     </bean>
   
   <bean id="userdao" class="Dao.UserDao">
   <property name="dataSource">
   <ref local="dataSource"/>
   </property>
   </bean> -->
  
</beans>


---------------------------------------------------------------------------------------------------------------------



package test;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import Dao.User;
import Dao.UserDao;


public class Main {


public static void main(String[] args) {

ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
UserDao userdao=(UserDao) ac.getBean("userdao");
User user=new User();
user.setName("xixi");
user.setPassword("1110000");
userdao.insertUser(user);
System.out.println("添加成功!");
 
}
}


原创粉丝点击