绪 论
Smile类库是由胡真山在空闲时间开发的一个封装了一些java开发中常用的一些功能的类库。该类库是一个简单、小巧、实用的常用类库,让发开中的一些操作变简单。之所以取名为smile就是希望开发人员能够开心的使用开发中的一些常用功能,使开发的时候面带微笑。
该类库主要包含的内容有以下几个方面:
1、 json的操作:json的解析及转换。
可以把javabean、map、list、Array转为json字符串。
也可以把json字符串解析成JSONObject、JSONArray
2、 数据库操作类库
数据库的查询、批量执行、以javabean形式插入对象到数据库中,插入map到数据库中, 分页查询数据库
3、 一个小简单的数据源实现。
实现了一个datasource接口,可以通过配置文件配置数据源
4、 Jsongetway 的实现
Jsongetway servlet,通过smile中实现的beanutils 对和json 对数据进行转换处理
5、 Jsp分页标签
一个jsp分页的标签库
6、 Beanutils 工具类
7、 一个简单的MVC框架strate
一个简单的MVC框架,配置文件方式和struts2非常的相似
8、 其它的一些工具类
我将会开以后的文章中分别对其中的功能进行详细的讲解,开此先展示几个简单的小功能。
例一: 分页查询数据库:
Action中的代码:
public String queryAllUser() throws Exception{
userService.queryAllUser(new JspTagsPager(request));
return "success";
}
javaDao 中的代码 Dialect.HSQL 是hsql数据库 如是oralce数据库
则用Dialect.ORACLE
public PageModel queryAllUser(Pager pager) throws SQLException {
StringBuffer sql=new StringBuffer("select * from Test where 1=1 ");
String name=pager.getRequest().getParameter("name");
if(name!=null&&!"".equals(name.trim())){
sql.append(" and name like '%"+name+"%'");
}
return PagerQueryUtils.queryPageSQL(ds.getConnection(),sql.toString(),pager,Dialect.HSQL);
}
Spring 中配置
<bean id="dataSource" class="org.smile.db.DataSourceBean">
<property name="name">
<value>jdbc/hsql</value>
</property>
</bean>
<bean id="userDAO" class="dao.UserDAO">
<property name="ds">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="userService" class="service.UserService">
<property name="userDAO">
<ref bean="userDAO"/>
</property>
</bean>
<bean id="userAction" class="action.UserAction">
<property name="userService">
<ref bean="userService"/>
</property>
</bean>
strate.xml 配置文件中的配置(这里是使用smile中的strate MVC 框架 )
<?xml version="1.0" encoding="UTF-8"?>
<strate>
<package namespace="/jsp/">
<action name="queryAllUserAction" class="userAction" method="queryAllUser">
<forward name="success" type="forward">/jsp/result.jsp</forward>
</action>
</package>
</strate>
Jsp 页面代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://smile.org/jsp/jstl/tag/pager" prefix="pg" %>
<table>
<tr><td>ID</td><td>名称</td><td>年龄</td></tr>
<c:forEach items="${pageModel.rows}" var="v">
<tr>
<td>${v.id }</td><td> ${v.name }</td><td>${v.age }</td>
</tr>
</c:forEach>
</table>
<pg:pager url="${path}/jsp/queryAllUserAction.do" maxPageItems="${pageModel.size}" items="${pageModel.total}">
<pg:common />
</pg:pager>
这样就是一个分页查询数据库的例子了。
【注】对于smile中相关的配置文件我在smile-1.0.jar中的META-INF目录下都有例子配置文件