Spring+Hibernate整合案例 (JdbcTemplate)

本文详细介绍了Spring与Hibernate整合的实战案例,通过JdbcTemplate进行数据库操作,包括实体类定义、DAO层实现及测试方法,展示了如何在Spring环境中配置数据源,并使用Hibernate进行持久层操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring+Hibernate整合案例 (JdbcTemplate)


案例来

实体类一个


public class NewUserTable implements java.io.Serializable {

	private Integer userId;
	private String userName;
	private String userSex;
	private Integer userAge;
	private Date userBr;
	.....
	
	}
	

dao层实现类


import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import com.ym.dao.IUserInfo;
import com.ym.entity.NewUserTable;

public class DUserInfoImpl extends JdbcTemplate implements IUserInfo {
	/**
	 * 增加
	 */
	@Override
	public int addUser(NewUserTable user) {
		
		int retNum=super.update("insert into new_user_table(userName,userSex,userAge,userBr) values(?,?,?,?)",
				new Object[]{user.getUserName(),user.getUserSex(),user.getUserAge(),user.getUserBr()});
		return retNum;
	}
	
	/**
	 * 以id为条件查询
	 */
	@Override
	public NewUserTable queryUser(int userId) {
		
		NewUserTable user=super.queryForObject("select * from new_user_table where userId=?", 
								new Object[]{userId},
								new BeanPropertyRowMapper<NewUserTable>(NewUserTable.class));
	
		return user;
	}
	
	/**
	 * 查询全部
	 */
	@Override
	public List<NewUserTable> queryAll() {
				//方法一
				List<Map<String, Object>> listu = super.queryForList("select * from new_user_table");				
				//方法二
				List<NewUserTable> listu2 = super.query("select * from new_user_table", 
						new BeanPropertyRowMapper<NewUserTable>(NewUserTable.class));
				return listu2;
		
	}

}

测试类:


import java.util.Date;
import java.util.List;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ym.dao.IUserInfo;
import com.ym.entity.NewUserTable;

public class JdbcTest {
	
	BeanFactory bf=new ClassPathXmlApplicationContext("applicationContext.xml");

	/**
	 * @Description: TODO(查询全部)
	 */
	@Test
	public void  test01(){
		IUserInfo iUserInfo=bf.getBean("dUser",IUserInfo.class);
		
		List<NewUserTable> list=iUserInfo.queryAll();
		for (NewUserTable ui : list) {
			System.out.println(ui.toString());
		}
		
	}
	
	/**
	 * @Description: TODO(通过id查询单个对象)
	 */
	@Test
	public void  test02(){
		
		IUserInfo iUserInfo=bf.getBean("dUser",IUserInfo.class);
		NewUserTable user=iUserInfo.queryUser(4);

		System.out.println(user.toString());
		
		
	}
	
	/**
	 * @Description: TODO(增加)
	 */
	@Test
	public void  test03(){
		IUserInfo iUserInfo=bf.getBean("dUser",IUserInfo.class);
		NewUserTable user=new NewUserTable("大黑", "男", 25, new Date());
		int retNum=iUserInfo.addUser(user);
		if(retNum>0){
			System.out.println("添加成功...");
		}else{
			System.out.println("添加失败...");
		}
		
	}

}
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"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
						http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 	
						http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" >

	<!-- 这里 class 属性值改变成jdbc的方式 -->
	<bean id="dataSource"	
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">		
		<!-- 引入链接驱动 -->
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url"value="jdbc:mysql://localhost:3306/hiberdb?userUnicode=true
								   &amp;&amp;characterEncoding=utf-8&amp;&amp;serverTimezone=GMT%2B8">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="154355"></property>
	</bean>
	
	<!-- 创建对象 注入 数据源 -->
	<bean id="dUser" class="com.ym.dao.impl.DUserInfoImpl">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		
		<property name="mappingResources">
			<list>
				<value>com/ym/entity/NewUserTable.hbm.xml</value></list>
		</property></bean>
		
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	
	<tx:annotation-driven transaction-manager="transactionManager" /></beans>
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值