//实体类
package com.xh.entity;
public class User {
private Integer id;
private String name;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
//数据访问类
package com.xh.service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import com.xh.entity.User;
public class UserService {
// 创建一个静态连接
public static Connection conn;
static {
resetConn();
}
public static Connection getConn() {
return conn;
}
// 设置连接
public static void resetConn() {
String username = "root";
String password = "root";
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
try {
Class.forName(driverClassName);
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 验证用户登陆
public String Login(String name, String password) throws SQLException {
String sql = "select * from users where name=? and password=?";
// 获取驱动
Connection conn = UserService.getConn();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, name);
pstm.setString(2, password);
ResultSet rs = pstm.executeQuery();
User u = null;
if (rs.next()) {
return "用户和密码正确";
} else {
return "您的输入有错误";
}
}
public List<User> getAllUser() {
List<User> list = new ArrayList();
;
String sql = "select * from users";
PreparedStatement pstm;
try {
pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
User u = new User();
u.setId(rs.getInt("id"));
u.setName(rs.getString("name"));
u.setPassword(rs.getString("password"));
list.add(u);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public int delUser(Integer id) {
String sql = "delete users where id=" + id;
int result = 0;
try {
PreparedStatement pstm = conn.prepareStatement(sql);
result = pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public int updateUser(User user) {
String sql = "update users set name=? ,password=? where id=?";
int result = 0;
try {
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, user.getName());
pstm.setString(2, user.getPassword());
pstm.setInt(3, user.getId());
result = pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public int addUser(User user) {
String sql = "insert into users values(?,?)";
int result = 0;
try {
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, user.getName());
pstm.setString(2, user.getPassword());
result = pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
}
///页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表</title>
<style type="text/css">
.button {
font-family: "tahoma", "宋体"; /*www.52css.com*/
font-size: 9pt;
color: #003399;
border: 1px #003399 solid;
color: #006699;
/*border-bottom: #93bee2 1px solid;
border-left: #93bee2 1px solid;
border-right: #93bee2 1px solid;
border-top: #93bee2 1px solid;*/
background-image: url(../images/bluebuttonbg.gif);
background-color: #e8f4ff;
cursor: hand;
font-style: normal;
width: 60px;
height: 22px;
}
</style>
<script type='text/javascript' src='/dwrlist/dwr/interface/UserJs.js'></script>
<script type='text/javascript' src='/dwrlist/dwr/engine.js'></script>
<script type='text/javascript' src='/dwrlist/dwr/util.js'></script>
<script type="text/javascript">
//封装对象
function findAllUser() {
UserJs.getAllUser( function(result) {
DWRUtil.removeAllRows("users");
dwr.util.addRows("users", result, tables, {
escapeHtml :false
});
});
}
var tables = [
function(value) {
return value.id;
},
function(value) {
return value.name;
},
function(value) {
return value.password;
},
function(value) {
return "<button id='btnedit' class='button' onclick='del("
+ value.id + ")'>删除</button>";
},
function(value) {
return "<button id='"
+ value.id
+ "' class='button' onclick='updateUser(this)'>修改</button>";
} ];
//修改用户
function updateUser(obj) {
alert(obj.id);
}
//删除用户
function del(id) {
alert(id);
}
</script>
</head>
<body>
<input type="button" value="查询所有" id="btnall" onclick="findAllUser()">
<table>
<tr>
<td>id</td>
<td>名字</td>
<td>密码</td>
<td>操作</td>
<td>修改</td>
</tr>
<tbody id="users"></tbody>
</table>
</body>
</html>
下面上源代码 和数据库脚本
小小的例子 希望对大家学习DWR 有帮助
分享到:
相关推荐
在本示例中,我们将深入探讨如何使用DWR填充表格,这是构建动态、交互性强的Web应用的关键技术之一。 首先,我们需要理解DWR的工作原理。DWR通过在浏览器端创建Java对象的代理,使得JavaScript可以直接调用服务器端...
在这个场景中,SSH2主要负责应用的安全性和控制层的管理,而DWR则用于实现前端与后端的数据实时交互,使得表格内容能在用户界面上无刷新地更新。 **SSH2(Spring Security)** SSH2是Spring Security的简称,是一个...
通过DWR,你可以调用服务器端的Java方法,就像它们是本地JavaScript函数一样,这样可以实现动态交互,比如动态添加表格的行和列。 **动态表格** 在Web应用中,动态生成表格通常用于展示可变的数据,例如数据库查询...
3. **AutoComplete和LiveGrid**:DWR提供了这些便捷的UI组件,用于自动补全和动态数据表格,可以极大地提升用户体验。 4. **JavaScript API**:DWR提供了一套完整的JavaScript库,使得在前端与后端进行交互变得非常...
这个小例子是关于如何使用DWR来动态地显示和操作HTML表格数据。下面将详细解释DWR与表格显示以及SQL Server 2005数据库的结合使用。 首先,我们需要理解DWR的基本工作原理。DWR的核心是通过AJAX(Asynchronous ...
例如,使用DWR可以实现异步表格数据加载、动态图表绘制、复杂表单的验证等功能,提高Web应用的性能和交互性。 总结来说,DWR是一种强大的工具,能够帮助开发者构建出更加高效、响应式的Web应用。通过学习和掌握DWR...
总之,"DWR 自动完成生成表格的例子" 是一个涵盖前端和后端交互的实战项目,它演示了如何利用DWR在Web应用中创建具有自动完成功能的动态表格。通过研究提供的源码,开发者可以学习到DWR的工作原理,以及如何结合...
总的来说,实现"动态添加编辑拖拽的树形表格"需要对EXT和jQuery有深入理解,熟悉前端的事件处理和数据操作,同时还需要掌握一定的后端交互技术,如DWR。这样的功能在企业级应用中非常常见,提高了用户界面的交互性和...
使用DWR,开发者可以方便地创建动态Web应用,比如实时更新表格、图表、地图等,而无需繁琐的HTTP请求和响应处理。同时,DWR提供了丰富的API和工具,简化了前后端的交互流程,提高了开发效率。 在实际项目中,将dwr....
通过这个"TestDWR"例子,你可以亲身体验DWR如何与SSH框架协同工作,实现动态、实时的Web应用。在实际项目中,这种技术可以用于各种场景,如表格数据的异步加载、表单验证、实时聊天窗口等。熟悉DWR的使用不仅能够...
2. **表格数据动态加载**:用户滚动表格时,DWR加载额外的数据行,实现无限滚动效果。 3. **表单验证**:在客户端提交表单前,DWR调用服务器端验证方法,提供实时反馈。 【DWR与Struts、Spring集成】 DWR可以轻松...
总结来说,"java的DWR项目的实现"是一个结合Servlet和DWR的实例,展示了如何构建一个能够实现客户端与服务器端动态交互的应用。通过理解和实践这个项目,开发者可以深入掌握DWR的工作原理,提升在RIA开发中的技能。...
在这个场景中,`addOptions()` 和 `addRows()` 是两个关键的DWR方法,分别用于动态填充下拉选择框(dropdown)和表格(table)。 1. `addOptions()` 方法: `addOptions()` 是DWR提供的一种方便的方法,用于向...
DWR(Direct Web Remoting)是一...通过学习这套DWR入门资料,你将能够熟练地使用DWR创建动态、交互性强的Web应用,提高开发效率,同时提升用户体验。实践中不断探索,理论与实战相结合,将助你在Web开发领域更进一步。
DWR简化了客户端和服务器端之间的通信,使得Web应用更加动态和响应。下面将详细介绍Dwr的使用步骤: 1. **导入DWR库**: 在项目中引入DWR的核心库dwr.jar。这通常通过Maven或Gradle等构建工具完成,或者手动将JAR...
《DWR入门教程:服务器推送新手指南》 ...通过以上步骤,你应该已经掌握了DWR的基本用法,接下来可以深入研究文档中的示例,探索更多高级功能,如动态更新、表格操作等,以提升你的Web应用的用户体验。
DWR可以帮助我们在前端动态地添加、编辑或删除联系人,同时保持服务器端数据的一致性。客户端的UI变化会立即反映在服务器上,反之亦然,服务器的更新也会即时反馈给客户端。 "resource.rar"可能是一个资源管理的...
- **动态表格**:使用DWR实时更新表格数据,无需刷新整个页面。 - **表单验证**:在客户端使用DWR调用服务器端的验证方法,提高验证效率。 - **动态加载组件**:根据用户操作,动态加载或更新页面上的组件。 7. ...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行异步通信。DWR简化了Ajax(Asynchronous JavaScript and XML)开发,使得开发者可以在不刷新整个页面的...