`
lfzhs
  • 浏览: 76313 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

spring,hibernate,dao操作数据库模板

阅读更多

table:

create table users
(
id int auto_increment not null primary key,
name varchar(32) not null,
password varchar(32) not null
);

select * from users

insert into users (name,password) values('text','text');

insert into users(name,password) select name,password from users;

dao:

package com.ssh.dao;

import java.util.List;

import com.ssh.orm.Users;

public interface UsersDao {
public boolean insert(Users users) throws Exception;

public Users select(int id) throws Exception;

public boolean update(Users users) throws Exception;

public boolean delete(int id) throws Exception;

public List selectAll() throws Exception;

public List selectAllByPage(int curPage, int lineSize) throws Exception;

public int getCount() throws Exception;

}

daoImpl:

package com.ssh.dao.impl;

import java.util.List;

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

import com.ssh.dao.UsersDao;
import com.ssh.orm.Users;

public class UsersDaoImpl extends HibernateDaoSupport implements UsersDao {
public boolean delete(int id) throws Exception {
   String hql = "delete from Users where id=:id";// 注意删除的写法!
   Query q = this.getSession().createQuery(hql);
   q.setParameter("id", id);
   if (q.executeUpdate() > 0) {
    return true;
   }
   return false;
}

public boolean insert(Users users) throws Exception {
   this.getSession().save(users);
   return true;
}

public Users select(int id) throws Exception {
   String hql = "from Users u where u.id=:id";
   Query q = this.getSession().createQuery(hql);
   q.setParameter("id", id);
   List l = q.list();
   if (l.size() > 0) {
    return (Users) l.get(0);
   }
   return null;
}

public boolean update(Users users) throws Exception {
   this.getHibernateTemplate().update(users);//注意更新操作
   return true;
}

public List selectAll() throws Exception {
   List all = null;
   String hql = "from Users";
   Query q = this.getSession().createQuery(hql);
   List l = q.list();
   if (l.size() > 0) {
    all = l;
   }
   return all;
}

public List selectAllByPage(int curPage, int lineSize) throws Exception {
   List all = null;
   String hql = "from Users";
   Query q = this.getSession().createQuery(hql);
   q.setFirstResult((curPage - 1) * lineSize);
   q.setMaxResults(lineSize);
   List l = q.list();
   if (l.size() > 0) {
    all = l;
   }
   return all;
}

public int getCount() throws Exception {
   String hql = "select count(*) from Users";
   Query q = this.getSession().createQuery(hql);
   if (q.list().size() > 0) {
    return (Integer) q.list().get(0);
   }
   return 0;
}
}

operate:

package com.ssh.text;

import java.util.List;

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

import com.ssh.dao.impl.UsersDaoImpl;
import com.ssh.orm.Users;

public class Text {

public static void main(String[] args) throws Exception {
   ApplicationContext context = new ClassPathXmlApplicationContext(
     "applicationContext.xml");
   UsersDaoImpl userDaoImpl = (UsersDaoImpl) context
     .getBean("userDaoImpl");
   // Users user = new Users();
   // user.setName("zzc");
   // user.setPassword("front");
   // System.out.println(userDaoImpl.insert(user));
   // Users u = userDaoImpl.select(2);
   // System.out.println(u.getName());

   // u.setName("text");
   // System.out.println(userDaoImpl.update(u));
   // System.out.println(userDaoImpl.delete(2));
   List l = userDaoImpl.selectAllByPage(5, 10);
   // for (int i = 0; i < l.size(); i++) {
   // System.out.println(((Users) l.get(i)).getName());
   // }
   if (l != null) {
    for (Object u : l) {
     System.out.println(((Users) u).getId() + ((Users) u).getName());
    }
   } else {
    System.out.println("没有记录");
   }
   System.out.println(userDaoImpl.getCount());

}
}

 

applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
   class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
   </property>
   <property name="url">
    <value>jdbc:mysql://127.0.0.1:3306/zzcfront</value>
   </property>
   <property name="username">
    <value>root</value>
   </property>
   <property name="password">
    <value>root</value>
   </property>
</bean>
<bean id="sessionFactory"
   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">
    <list>
     <value>com/ssh/orm/Users.hbm.xml</value>
    </list>
   </property>
</bean>
<bean id="hibernateTemplate"
   class="org.springframework.orm.hibernate3.HibernateTemplate">
   <property name="sessionFactory">
    <ref bean="sessionFactory" />
   </property>
</bean>

<bean id="userDao" class="com.ssh.dao.UsersDao" abstract="true"></bean>
<bean id="userDaoImpl" class="com.ssh.dao.impl.UsersDaoImpl"
   parent="userDao">
   <property name="hibernateTemplate">
    <ref bean="hibernateTemplate" />
   </property>
</bean>
</beans>

分享到:
评论

相关推荐

    HibernateDao.java

    - **设计模式**:考虑使用模板方法模式或者策略模式,将通用的数据库操作抽象出来,使得`HibernateDao.java`更具有复用性和灵活性。 总结,`HibernateDao.java`是Hibernate框架在实际项目中的重要实现,它封装了...

    springMVC + Hibernate 工程模板

    hibernate dao 操作(一个basedao全部搞定) 两种配置:oracle mysql,切换数据库只要把SessionFactory的配置文件改成对应就可以了 c3p0配置:mysql调试通过,oracle由于存在问题,未配置 spring配置式事务管理...

    Spring对DAO的支持.doc

    本文将从三个方面探讨Spring对DAO的支持:传统模式的DAO,Spring对JDBC的DAO支持,以及Spring对Hibernate的DAO支持。 ### 1. 传统DAO模式 在传统的DAO模式中,通常需要实现以下几个组件: - **DAO工厂**:创建DAO...

    spring+hibernate和spring+myBatis实现连接多个数据库,同时操作的项目

    这个项目提供了一个模板,可以帮助开发者快速搭建一个多数据源环境,无论是使用Hibernate的ORM方式还是MyBatis的SQL映射方式,都能灵活地进行数据库操作。通过这个项目,开发者可以学习到如何在实际应用中管理多数据...

    struts2 spring hibernate框架技术与项目实战 光盘源码上

    Hibernate是Java领域的一款对象关系映射(ORM)工具,它将数据库操作转化为对Java对象的操作,降低了数据库操作的复杂度。Hibernate支持JPA规范,提供了实体管理、会话管理等功能,使得开发者可以避免编写大量的SQL...

    Spring+hibernate整合源代码

    5. **DAO 层集成**:在 DAO 类中,使用 Hibernate 的 Session 进行数据库操作。Spring 可以通过工厂方法或 JdbcTemplate、HibernateTemplate 提供的模板方法来获取 Session。 6. **Service 层设计**:Service 层是...

    Hibernate泛型DAO(结合spring模板支持)

    本篇文章将探讨如何使用Hibernate实现泛型DAO,并结合Spring模板来增强其功能。 泛型DAO是一种设计模式,它通过定义一个通用的DAO接口或抽象类,可以适用于不同的实体类,减少了重复的代码。这种模式的核心在于利用...

    HibernateSpring多数据库解决方案.doc

    下面我们将深入探讨如何在Spring和Hibernate环境下配置和管理多个数据库。 首先,Spring框架提供了数据源(DataSource)的概念,允许我们配置多个数据源来连接不同的数据库。在给出的文档中,我们可以看到有两个...

    spring2.5 hibernate api

    此外,Spring的JdbcTemplate和HibernateTemplate还可以用于实现数据库操作的模板方法模式,提高了代码的可读性和可重用性。 总的来说,Spring 2.5 和 Hibernate 的结合为Java开发人员提供了一套强大的工具,用于...

    Struts2+spring+hibernate项目模板例子

    5. **集成过程**:SSH的集成涉及到几个关键步骤:配置Struts2的核心过滤器,设置Spring的DispatcherServlet,配置Hibernate的数据源和SessionFactory,以及在Spring中配置Hibernate的DAO和Service。 6. **开发实践*...

    Spring+Hibernate+Mysql简单搭建

    在IT行业中,Spring、Hibernate和Mysql是三个非常重要的开源框架和数据库系统,它们共同构成了企业级应用开发的基础。本文将详细阐述如何使用这三个技术来搭建一个简单的后端系统。 首先,Spring是一个全面的Java...

    struts2 spring hibernate集成

    Struts2主要用于控制应用程序的流程,Spring提供全面的依赖注入和事务管理,而Hibernate则是优秀的对象关系映射(ORM)框架,使得开发者可以方便地操作数据库。 **Struts2** 是一个基于MVC设计模式的开源框架,它...

    springMVC+spring+Hibernate框架

    服务层进一步调用DAO层,DAO层通过Hibernate与数据库交互,完成数据的增删改查。 在"springMVC+spring+Hibernate框架搭建,登录功能"的场景下,我们可以创建一个登录Controller,接收用户的用户名和密码。...

    spring 对dao 的操作

    在这个基于SSH(Spring、Struts、Hibernate)的项目中,DAO层是连接业务逻辑与数据库的关键部分。 首先,我们需要了解DAO设计模式。DAO模式是一种常用的设计模式,它的主要目标是提供一个接口,隐藏底层数据存储的...

    dao.rar_spring-dao

    Spring的DAO支持包括了JDBC模板、Hibernate和iBatis等ORM工具的集成,以及声明式和编程式事务管理。这些功能可以帮助开发者编写更简洁、更易于测试的DAO类。 根据"压缩包子文件的文件名称列表",我们有两个文件:...

    struts+spring+Hibernate+iBtais配置模板

    这个"struts+spring+Hibernate+iBtais配置模板"应该包含上述所有组件的配置示例,帮助开发者快速搭建基于这些框架的应用。使用这个模板,可以极大地缩短项目初始化的时间,提高开发效率。在实际开发中,开发者需要...

    struts2 spring hibernate 模板实例

    4. **DAO层**:使用Hibernate进行数据库操作,通常包含SessionFactory的获取和Session的打开、关闭。 5. **实体类**:对应数据库表的Java对象,通过注解或XML文件与Hibernate进行映射。 6. **视图**:可能包含JSP...

    struts spring hibernate2

    具体到这个"strutsspringhibernate2"的示例项目,我们可以推测它包含了一个整合了Struts、Spring和Hibernate2版本的演示应用。这个项目可能包括以下几个关键部分: 1. **配置文件**:如struts-config.xml用于定义...

    Spring与Hibernate整合实例(博客用户登录增删改查)

    Spring还提供了一个丰富的数据访问抽象,包括JDBC模板、ORM集成(如Hibernate),使得数据库操作变得更加简洁和模块化。 **Hibernate** 是一个流行的Java持久层框架,它简化了对象关系映射(Object-Relational ...

Global site tag (gtag.js) - Google Analytics