【SSH学习笔记】整合spring3-hibernate的小项目(一)
来源:互联网 发布:linux 三个时间 编辑:程序博客网 时间:2024/05/18 11:45
需求分析:
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@GeneratedValuepublic 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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://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 {@Resourceprivate 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")@Overridepublic List<User> findAll() {List<User> list = this.getSession().createQuery("from User").list();return list;}@Overridepublic 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;@Testpublic 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
- 【SSH学习笔记】整合spring3-hibernate的小项目(一)
- 【SSH学习笔记】整合spring3-hibernate的小项目(二)
- 【SSH学习笔记】整合spring3-struts2的小项目(一)
- 【SSH学习笔记】整合spring3-struts2的小项目(二)
- 【SSH学习笔记】整合spring3-struts2的小项目(三)
- 【SSH学习笔记】整合spring3-struts2的小项目(四)
- hibernate-4.2整合Spring3.0框架应用开发(一)
- SSH整合学习笔记之spring与hibernate整合(二)--C3P0
- Spring3整合Hibernate 项目,Dao测试(新)
- 使用Maven实现Struts2+Hibernate4+Spring3整合SSH框架(一):Maven项目创建
- SSH(Spring+Struts+Hibernate)学习笔记(一)概览
- 【SSH】Hibernate学习(一)
- SSH整合学习笔记之struts2+spring+hibernate+c3p0
- ssh整合学习笔记
- spring3.x + activemq学习笔记(一)
- SSH-spring3.2与struts2.0整合小例
- JBPM学习(一)--与SSH整合
- IDEA 下写出第一个 SSH 整合框架练手项目( 一 ,Spring 与 Hibernate 整合)
- 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE)
- Master OpenCV with Pratical Computer Vision Projects——如何编译Cartoonifier_Android
- iOS开发之网络连接判断(实例)
- ubuntu10.10编译qtopia-2.2.0 问题总结及分析
- 2013-08-21C语言编程实践课第三天
- 【SSH学习笔记】整合spring3-hibernate的小项目(一)
- Android发送GET和POST请求DEMO
- C/C++中extern关键字详解
- 使用Mac OS X系统必须了解的10条命令
- 11gR2中的SCAN监听器和本地监听器配置
- KMP算法
- hdu 1141 数学
- nhibernate连接池配置
- vim使用进阶