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`是Hibernate框架在实际项目中的重要实现,它封装了...
hibernate dao 操作(一个basedao全部搞定) 两种配置:oracle mysql,切换数据库只要把SessionFactory的配置文件改成对应就可以了 c3p0配置:mysql调试通过,oracle由于存在问题,未配置 spring配置式事务管理...
本文将从三个方面探讨Spring对DAO的支持:传统模式的DAO,Spring对JDBC的DAO支持,以及Spring对Hibernate的DAO支持。 ### 1. 传统DAO模式 在传统的DAO模式中,通常需要实现以下几个组件: - **DAO工厂**:创建DAO...
这个项目提供了一个模板,可以帮助开发者快速搭建一个多数据源环境,无论是使用Hibernate的ORM方式还是MyBatis的SQL映射方式,都能灵活地进行数据库操作。通过这个项目,开发者可以学习到如何在实际应用中管理多数据...
Hibernate是Java领域的一款对象关系映射(ORM)工具,它将数据库操作转化为对Java对象的操作,降低了数据库操作的复杂度。Hibernate支持JPA规范,提供了实体管理、会话管理等功能,使得开发者可以避免编写大量的SQL...
5. **DAO 层集成**:在 DAO 类中,使用 Hibernate 的 Session 进行数据库操作。Spring 可以通过工厂方法或 JdbcTemplate、HibernateTemplate 提供的模板方法来获取 Session。 6. **Service 层设计**:Service 层是...
本篇文章将探讨如何使用Hibernate实现泛型DAO,并结合Spring模板来增强其功能。 泛型DAO是一种设计模式,它通过定义一个通用的DAO接口或抽象类,可以适用于不同的实体类,减少了重复的代码。这种模式的核心在于利用...
下面我们将深入探讨如何在Spring和Hibernate环境下配置和管理多个数据库。 首先,Spring框架提供了数据源(DataSource)的概念,允许我们配置多个数据源来连接不同的数据库。在给出的文档中,我们可以看到有两个...
此外,Spring的JdbcTemplate和HibernateTemplate还可以用于实现数据库操作的模板方法模式,提高了代码的可读性和可重用性。 总的来说,Spring 2.5 和 Hibernate 的结合为Java开发人员提供了一套强大的工具,用于...
5. **集成过程**:SSH的集成涉及到几个关键步骤:配置Struts2的核心过滤器,设置Spring的DispatcherServlet,配置Hibernate的数据源和SessionFactory,以及在Spring中配置Hibernate的DAO和Service。 6. **开发实践*...
在IT行业中,Spring、Hibernate和Mysql是三个非常重要的开源框架和数据库系统,它们共同构成了企业级应用开发的基础。本文将详细阐述如何使用这三个技术来搭建一个简单的后端系统。 首先,Spring是一个全面的Java...
Struts2主要用于控制应用程序的流程,Spring提供全面的依赖注入和事务管理,而Hibernate则是优秀的对象关系映射(ORM)框架,使得开发者可以方便地操作数据库。 **Struts2** 是一个基于MVC设计模式的开源框架,它...
服务层进一步调用DAO层,DAO层通过Hibernate与数据库交互,完成数据的增删改查。 在"springMVC+spring+Hibernate框架搭建,登录功能"的场景下,我们可以创建一个登录Controller,接收用户的用户名和密码。...
在这个基于SSH(Spring、Struts、Hibernate)的项目中,DAO层是连接业务逻辑与数据库的关键部分。 首先,我们需要了解DAO设计模式。DAO模式是一种常用的设计模式,它的主要目标是提供一个接口,隐藏底层数据存储的...
Spring的DAO支持包括了JDBC模板、Hibernate和iBatis等ORM工具的集成,以及声明式和编程式事务管理。这些功能可以帮助开发者编写更简洁、更易于测试的DAO类。 根据"压缩包子文件的文件名称列表",我们有两个文件:...
这个"struts+spring+Hibernate+iBtais配置模板"应该包含上述所有组件的配置示例,帮助开发者快速搭建基于这些框架的应用。使用这个模板,可以极大地缩短项目初始化的时间,提高开发效率。在实际开发中,开发者需要...
4. **DAO层**:使用Hibernate进行数据库操作,通常包含SessionFactory的获取和Session的打开、关闭。 5. **实体类**:对应数据库表的Java对象,通过注解或XML文件与Hibernate进行映射。 6. **视图**:可能包含JSP...
具体到这个"strutsspringhibernate2"的示例项目,我们可以推测它包含了一个整合了Struts、Spring和Hibernate2版本的演示应用。这个项目可能包括以下几个关键部分: 1. **配置文件**:如struts-config.xml用于定义...
Spring还提供了一个丰富的数据访问抽象,包括JDBC模板、ORM集成(如Hibernate),使得数据库操作变得更加简洁和模块化。 **Hibernate** 是一个流行的Java持久层框架,它简化了对象关系映射(Object-Relational ...