

1.web.xml和dwr.xml两个配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>ajaxDWR</display-name>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<description></description>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<init>
<converter id="tablerowbean" class="com.yuqiang.common.TableRowConverter" />
</init>
<allow>
<create creator="new" javascript="Querytable">
<param name="class" value="com.yuqiang.connect.QueryBase" />
<include method="getCondition"/>
</create>
<convert converter="tablerowbean" match="com.yuqiang.pojo.User"/>(这个里面可以转化多个类)
</allow>
</dwr>
2.ibatis连接数据库的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<property name="JDBC.ConnectionURL" value="jdbc:microsoft:sqlserver://168.168.28.247:1433;SelectMethod=Cursor;DatabaseName=TestYu" />
<property name="JDBC.Username" value="sa" />
<property name="JDBC.Password" value="888888" />
<property name="Pool.MaximumActiveConnections" value="100" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from t_user" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMap resource="com/yuqiang/user/User.xml" />
</sqlMapConfig>
3.pojo文件
package com.yuqiang.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
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;
}
}
4。操作数据库的文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<typeAlias alias="user" type="com.yuqiang.pojo.User"/>
<select id="getUser" resultClass="user">
select id, name,age
from t_user
</select>
<update id="updateUser" parameterClass="user">
update t_user
set name=#name#,
age=#age#
where id=#id#
</update>
<insert id="insertUser" parameterClass="user">
insert into t_user(name,age)
values(#name#,#age#)
</insert>
<delete id="delUser" parameterClass="java.lang.String">
delete
from t_user
where id=#t_user#
</delete>
</sqlMap>
5.两个公用的文件
package com.yuqiang.common;
import java.io.IOException;
import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class Common {
public static SqlMapClient sqlMapper;
static{
Reader reader;
try {
reader = Resources.getResourceAsReader("com/yuqiang/sqlmap/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.yuqiang.common;
import org.directwebremoting.convert.BeanConverter;
public class TableRowConverter extends BeanConverter {
}
6.js文件
var count=1;
var cellFuncs = [//获取行数据
function(data) { return count++; },
function(data) { return data.name; },
function(data) { return data.age; }
];
function init(){
freshTable();
}
var freshTable=function(){
Querytable.getCondition(fillTable);
}
var fillTable=function(rows){
DWRUtil.removeAllRows("rows");
DWRUtil.addRows("rows",rows,cellFuncs);
}
7.测试页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" src="dwr/interface/Querytable.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="js/query.js"></script>
</head>
<body onload="init();">
<table cellpadding="0" cellspacing="0" align="center" border="1">
<tr>
<td>序号</td>
<td>姓名</td>
<td>年龄</td>
</tr>
<tbody id="rows"></tbody>
</table>
</body>
</html>
本文介绍了一个结合DWR实现远程调用和iBatis进行数据库操作的示例项目。主要内容包括web.xml和dwr.xml配置、iBatis数据库连接配置、POJO定义、数据库操作文件、公共文件及JavaScript前端交互。
448

被折叠的 条评论
为什么被折叠?



