`
DXL_xiaoli
  • 浏览: 71526 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

s2sh整合中精确查询功能实现

阅读更多

s2sh整合中精确查询功能实现

目前我正在做使用struts2springhibernate三大框架的项目,在这个开发过程中我需要写一个根据条件进行查询功能,在此我将条件查询分为精确查询和模糊查询。

精确查询是指根据某一个数据库已存在的值进行查询,例如根据用户的名字进行查询

模糊查询是指根据某个字段的某个字母或数字进行查询,例如根据用户的名字当中的某个字进行查询。首先我们需要搭建开发环境,引入一些必要的类库等操作。由于我主要想介绍根据条件查询的操作,所以搭建开发环境,引入类库等操作在此省略。

下面是我写的精确查询的实际案例:

 

 

precision searches.jsp的代码如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">
		<title>My JSP 'list.jsp' starting page</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
		<script type="text/javascript"
			src="${pageContext.request.contextPath}/js/jquery-1.6.js">
</script>

		<script type="text/javascript">
/**加载整个文档*/
$(document).ready(function() {
});
function findByName() {
//获取id=”uname”文本框中的name的值
	var name = $("#uname").val();
//判断文本框中是否有值 若为空 则弹出红色提示内容:用户名不能为空;以及该文本框变为红色。若不为空则执行submit提交查询
	if (name == "") {
		$("#uname").css("border-color", "red");
		$("#msg").html("<font color='red'>用户名不能为空</font>");
	} else {
		$("#suser").submit();
	}
}
//文本框中获取焦点时 不显示任何提示信息
function styleChanage() {
	$("#uname").css("border-color", "");
	$("#msg").html("");
}
	</script>
	</head>

	<body>
		<h1>
			精确查询操作
		</h1>
		<h3>
			唯一性:在用户注册过程中 强调的用户注册的用户名必须唯一
		</h3>
		<div>
			<form		action="${pageContext.request.contextPath}/csdn/user_findByName"
				id="suser" method="post">
				<input type="text" name="user.name" id="uname"
					onfocus="styleChanage()" />
				<span id="msg"></span>
				<input type="button" value="精确查询" onclick="findByName()"/>
			</form>
		</div>
		<table>
			<thead>
				<tr>
					<th>
						序号
					</th>
					<th>
						用户名
					</th>
					<th>
						密码
					</th>
					<th>
						注册时间
					</th>
					<th>
						操作
					</th>
				</tr>
			</thead>
<!—在tbody中将查询结果显示出来-->
			<tbody>
				<tr>
					<td>
						<s:property value="#request.user.id" />
					</td>
					<td>
						<s:property value="#request.user.name" />
					</td>
					<td>
						<s:property value="#request.user.pass" />
					</td>
					<td>
						<s:date name="#request.user.rdate" format="yyyy-MM-dd"></s:date>
						<br>
					</td>
					<td>
						<s:url id="edit" action="user_edit" namespace="/csdn">
							<s:param name="user.id">
								<s:property value="#request.user.id" />
							</s:param>
						</s:url>
						<s:url id="del" action="user_delete" namespace="/csdn">
							<s:param name="user.id">
								<s:property value="#request.user.id" />
							</s:param>
						</s:url>

						<s:a href="%{edit}">修改</s:a>
						|
						<s:a href="%{del}">删除</s:a>
					</td>
				</tr>
			</tbody>
		</table>

	</body>
</html>

 

解析:在以上页面中主要是看form表单中的内容,当点击精确查询时执行onclick="findByName()"事件,在该事件中获取你要查询内容的值即你输入到文本框中的值,然后判断你是否已经输入查询内容,若没有输入则显示用户名不能为空 文本框变色等提示,若已经输入,则执行onfocus="styleChanage()"获取文本框焦点时操作即文本框不显示颜色同时也不会有提示信息 然后执行submit操作提交到action中执行findByName()方法.

UserAction.java
public class UserAction extends ActionSupport {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private UserServiceImpl userServiceImpl;
	
	public UserServiceImpl getUserServiceImpl() {
		return userServiceImpl;
	}

	/* 依赖注入方式 */
	public void setUserServiceImpl(UserServiceImpl userServiceImpl) {
		this.userServiceImpl = userServiceImpl;
	}

	private List<User> users;
	private User user;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public List<User> getUsers() {
		return users;
	}

	public void setUsers(List<User> users) {
		this.users = users;
	}

	/* 精确查询 */
	public String findByName() {
		user = userServiceImpl.findByName(user.getName());
		return "findByName";
	}
}

 

解析:此action主要是根据页面提交的查询条件即用户名进行查询

struts-user.xml文件
<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="dxl" extends="json-default" namespace="/csdn">
		<global-results>
			<result name="input">/index.jsp</result>
		</global-results>

		<action name="user_*" class="userAction" method="{1}">
			
			<result name="findByName">/WEB-INF/user/precision searches.jsp</result>
			
		</action>
	</package>


</struts>   

 

解析:该文件使用通配符形式返回结果,若成功查询则从新跳转到页面显示查询结果。

UserServiceImpl.java
public class UserServiceImpl implements UserService {

	private UserDaoImpl userDaoImpl;
   /*依赖注入*/
	public void setUserDaoImpl(UserDaoImpl userDaoImpl) {
		this.userDaoImpl = userDaoImpl;
	}
	
	public User findByName(String name) {
		
		return userDaoImpl.findByName(name);
		
	}
}

UserDaoImpl.java
public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
	/* 根据用户名查询用户信息 */
	public User findByName(String name) {
		List list = getHibernateTemplate().find("from User where name=? ", name);
		if (list.size() > 0) {
			User user = (User) list.get(0);
			return user;
		}
		return null;
	}
}

 

解析:userDaoImpl为底层实现类,将借助HibernateTemplate模板从User类中根据页面传来的name的值查询  若查询结果大于0则返回该用户信息,否则返回null

总结:以上是我整理的整个精确查询操作的流程,下面的文章总结中我将介绍模糊查询操作,以及模糊查询操作的分页操作。

 

2
3
分享到:
评论

相关推荐

    S2SH整合 S2SH整合

    在S2SH整合中,Spring主要负责管理各个组件的生命周期,包括Struts2的Action、Hibernate的SessionFactory等,实现依赖注入,降低各组件间的耦合度。 Hibernate是一个对象关系映射(ORM)框架,它将数据库操作转化为...

    基于Annotation的s2sh整合配置实现分页功能

    基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能基于Annotation的s2sh整合配置实现分页功能

    s2sh整合所需jar包大全

    在S2SH中,Hibernate负责数据持久化,主要的jar包有`hibernate-core.jar`、`hibernate-entitymanager.jar`,以及可能需要的数据库驱动,如`mysql-connector-java.jar`或`ojdbc.jar`。 4. **其他依赖**: 为了使S2SH...

    s2sh整合实例

    在S2SH整合中,Spring主要负责管理Bean的生命周期,包括初始化、装配和销毁,同时也提供了事务管理和数据源管理等功能。 **3. Hibernate框架** Hibernate是一个ORM框架,它可以将Java对象与数据库表进行映射,从而...

    S2SH 整合 导入即可完整包

    在S2SH中,Hibernate负责与数据库的交互,包括对象的持久化、查询和事务处理。 **4. S2SH整合过程** 整合S2SH通常包括以下步骤: - 配置Spring:设置Bean定义,包括数据库连接池、SessionFactory(Hibernate的核心...

    s2sh整合完全包

    在实际开发中,使用s2sh框架的开发者可以利用这些库来实现模型-视图-控制器(MVC)架构,通过Spring进行依赖注入和事务管理,而Hibernate则负责数据持久化。通过这个整合包,开发者能够更快地构建起一个功能完备的...

    s2sh整合详细jar

    在"**s2sh整合详细jar**"压缩包中,除了这三个框架的基础jar,可能还包括了其他一些必要的依赖库,如JDBC驱动、log4j日志框架、commons-lang等。为了确保项目成功运行,需要正确地导入所有必要的jar,并按照特定顺序...

    S2SH整合demo

    在实际项目中,`整合说明S2SH.docx`文档可能详细介绍了如何设置这些配置文件,以及如何编写Action、DAO和Service层代码,以实现S2SH的无缝集成。而`S2SH_blank`可能是项目的基础模板或者空壳,供开发者在此基础上...

    s2sh整合demo源码

    在S2SH中,Spring负责协调其他两个框架,例如配置数据源、事务管理、Bean的实例化等。Spring 2.5.5版本提供了对JSR-250注解的支持,增强了AOP和国际化功能。 3. **Hibernate**: Hibernate是持久层的解决方案,它...

    s2sh整合实现增删改查源代码(带s2sh整合包)

    在S2SH中,Hibernate负责数据持久化,通过HQL(Hibernate查询语言)或SQL与数据库交互,降低了数据库操作的复杂性。 **S2SH整合** 将这三个框架集成在一起,形成强大的Web开发工具。整合过程中,Struts2负责请求...

    s2sh整合所有的jar包

    标题 "s2sh整合所有的jar包" 指的是将Struts、Spring和Hibernate这三种技术集成所需的Java档案(JAR)文件集合在一起,便于在项目开发中快速引用和使用。这种整合通常被称为SSH框架,它是Java Web开发中的一个流行...

    S2SH整合完美教程

    S2SH整合旨在实现业务逻辑与控制层、持久化层的高效协同,提高代码的可维护性和可扩展性。下面我们将详细介绍如何通过配置文件和注解的方式进行S2SH的完整整合。 1. **添加依赖的JAR包** 整合S2SH首先需要确保项目...

    S2SH整合+测试小例程

    在S2SH整合中,Spring主要负责管理对象(包括Struts2的Action和Hibernate的SessionFactory),以及实现事务控制。Spring的ApplicationContext配置文件(如applicationContext.xml)定义了Bean的实例化、初始化和装配...

    完整的S2SH框架整合, 带jar包

    在S2SH中,Spring主要负责管理Bean的生命周期,实现依赖注入,以及提供事务管理。同时,Spring还可以与Hibernate集成,简化数据库操作。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它将Java对象...

    S2SH整合_注册_登录

    总之,S2SH整合项目展示了如何在Web应用中集成这三个框架,实现用户注册和登录功能。这种整合提供了一种高效的开发方式,降低了代码耦合度,提高了可维护性和可扩展性。对于学习和理解MVC架构、依赖注入、面向方面...

    S2SH整合jar包

    这些库文件是实现S2SH整合的基础,开发者需要根据项目需求,正确导入并配置这些库。 总的来说,S2SH整合提供了完整的MVC解决方案,通过合理的分工和紧密的协作,提高了开发效率,降低了维护成本,是Java Web开发中...

    ssh三大框架整合s2sh整合总结(struts2.1.8-spring2.5-hibernate3.2)

    在S2SH整合中,Hibernate负责将Java对象持久化到数据库,Spring通过HibernateTemplate或JPA接口与Hibernate进行交互,实现数据的增删改查。 整合步骤: 1. **配置Struts2**:在web.xml中配置Struts2的过滤器,设置...

    S2SH整合的学生宿舍管理系统(对技术有一定的提高)

    在S2SH整合中,Spring主要用于管理对象的生命周期和提供服务层的业务逻辑。此外,Spring的AOP可以用来实现如日志记录、权限控制等跨切面的功能。 3. **Hibernate框架**:Hibernate是一个对象关系映射(ORM)工具,...

    s2sh框架整合类包

    这个描述简洁地指出,类包是为了实现s2sh框架的整合而设计的。这意味着它可能包含了所有必要的JAR文件、配置文件以及可能的示例代码,以便开发者能够在项目中轻松集成这三个组件。s2sh框架的整合工作通常涉及多个...

    s2sh整合 增删改查功能(2)

    在`lib(2)`目录中,包含了这些框架所需的类库文件,这些jar包是实现整合的基础。通常,我们需要将这些库添加到项目的类路径中,确保所有框架能正常工作。 接下来,要实现增删改查功能,你需要定义实体类,这些类...

Global site tag (gtag.js) - Google Analytics