【SSH学习笔记】整合spring3-hibernate的小项目(一)

9 篇文章 0 订阅
9 篇文章 0 订阅

需求分析:

1、使用spring注入dataSourse数据源

2、使用BaseDao获取注入SessionFactory并返回Session

3、实现查询所有和按字符串查询的方法

4、使用JUNIT测试

【配套的资源代码已经上传,有兴趣的朋友可以下载看看点击打开链接


操作步骤:

1、创建用户表并添加测试数据

create table users(
  userid number(8) primary key,
  username nvarchar2(10),
  password nvarchar2(10),
  birthday date,
  flag number(8)
);
insert into users values(1,'zhangsan','123',to_date('1992-1-1','yyyy-MM-dd'),0);
insert into users values(2,'lisi','123',to_date('1992-1-1','yyyy-MM-dd'),0);

2、创建用户实体并写好注解

import java.util.Date;
@Entity
@Table(name="users")
public class User {
	
	private int userid;
	private String username;
	private String password;
	private Date birthday;
	private int flag;
	
	@Id
	@GeneratedValue
	public int getUserid() {
		return userid;
	}
	public void setUserid(int userid) {
		this.userid = userid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public int getFlag() {
		return flag;
	}
	public void setFlag(int flag) {
		this.flag = flag;
	}
	public User() {
		super();
	}
	public User(int userid, String username, String password, Date birthday,
			int flag) {
		super();
		this.userid = userid;
		this.username = username;
		this.password = password;
		this.birthday = birthday;
		this.flag = flag;
	}

}

3、导入Spring3和hibernate3.0所需JAR包,创建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:context="http://www.springframework.org/schema/context" 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-3.0.xsd
						http://www.springframework.org/schema/context 
						http://www.springframework.org/schema/context/spring-context-3.0.xsd
						http://www.springframework.org/schema/aop 
						http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
						http://www.springframework.org/schema/tx 
						http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

	<context:component-scan base-package="com.wyd"/>

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.OracleDriver">
		</property>
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:adminwyd">
		</property>
		<property name="username" value="scott"></property>
		<property name="password" value="tiger"></property>
	</bean>

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="packagesToScan">
			<value>com.wyd.entity</value>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle9Dialect
				</prop>
				<prop key="hibernate.hbm2ddl">update</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
			</props>
		</property>
	</bean>

	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<aop:config>
		<aop:pointcut id="productServiceMethods" expression="execution(* com.wyd.dao.*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods" />
	</aop:config>

	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>

</beans>

4、创建BaseDao、IUserDao接口及其实现类

public class BaseDao {

	@Resource
	private SessionFactory sessionFactory;
	
	protected Session getSession(){
		return this.sessionFactory.getCurrentSession();
	}
	
}

public interface IUserDao {
	
	public List<User> findAll();
	
	public User isUser(String username);

}

@Repository("userDao")
public class UserDao extends BaseDao implements IUserDao {

	@SuppressWarnings("unchecked")
	@Override
	public List<User> findAll() {
		List<User> list = this.getSession().createQuery("from User").list();
		return list;
		
	}

	@Override
	public User isUser(String username) {
		User user = (User) this.getSession().createQuery("from User where username='"+username+"'").uniqueResult();
		return user;
	}

}

5、创建UserTest测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class UserTest {
	
	@Resource(name = "userDao")
	private IUserDao userDao;

	@Test
	public void findAll(){
		System.out.println(userDao.findAll().size());
	}
	
	@Test 
	public void isUser(){
		System.out.println(userDao.isUser("zhangsan").getBirthday());
	}

}



6、运行结果

测试findAll():
Hibernate:
    select
        user0_.userid as userid0_,
        user0_.birthday as birthday0_,
        user0_.flag as flag0_,
        user0_.password as password0_,
        user0_.username as username0_
    from
        users user0_
2

测试isUser():
Hibernate:
    select
        user0_.userid as userid0_,
        user0_.birthday as birthday0_,
        user0_.flag as flag0_,
        user0_.password as password0_,
        user0_.username as username0_
    from
        users user0_
    where
        user0_.username='zhangsan'
1992-01-01 00:00:00.0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值