Code




Archive


Skip to content


Search







Export to GitHub

mydbutil-01




another database util

简介: dispatcher:一个简单的MVC框架或者不能算是MVC 作用:通过URL直接将请求转发到具体的方法上。 配置:唯一的配置文件为config.properties,暂时里面只需要配置一句 url.suffix=com.wenbin.action(就是需要进行转发的类的包路径,多个路径用逗号隔开)

解决的问题:简化配置,去除配置文件,尽可能的使得软件的维护成本降低。并且降低学习成本。

简单示例: web.xml 中进行配置: Java代码

<servlet>
<servlet-name>
dispatcher
</servlet-name>
<servlet-class>
com.dispacher.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
dispatcher
</servlet-name>
<url-pattern>
**.do
</url-pattern>
</servlet-mapping>**

某个普通的java类:(推荐通过ContextHolder进行数据的采集以及页面的返回,下面会详细介绍该接口) Java代码 package com.wenbin.action;

public class Show {
public String show() {
System.out.println("show"); return "/show/wenbin.jsp";
} }
package com.wenbin.action;
public class Show {
public String show() {
System.out.println("show"); return "/show/wenbin.jsp";
} }

然后url里面这样 /contextpath/Show/show.do contextpath--web容器为项目分配的上下文路径 Show--类名 show--方法名

核心接口ContextHolder简介: initFromTheRequest(Class cla)--从上下文请求中初始化一个给定的对象的方法(需要页面中的input的name和类中定义的字段一样,不一样的无法进行匹配)、 forward(String jspUrl)--内部转发 sendRedirect(String url)--请求重发 ok dispatcher到此为止。

dbutil: 目的:实现数据库ORM,去除配置文件

实现:目前提供对于select from user where id = ${thisUser.ID} 这样类似的sql的解析,

示例代码:

Java代码 @Override public Security getSecurityByUrlPatternFromModule(Module module) {
initConnection(); DBUTil.setAttribute("curModule", module); String sql = "select from security where urlpattern = ${curModule.urlpattern}"; List
<Security>
result = DBUTil.getResult(sql, Security.class);
if (result != null && result.size() > 0) {
return result.get(0);
} return null; }
@Override public Security getSecurityByUrlPatternFromModule(Module module) {
initConnection(); DBUTil.setAttribute("curModule", module); String sql = "select from security where urlpattern = ${curModule.urlpattern}"; List
<Security>
result = DBUTil.getResult(sql, Security.class);
if (result != null && result.size() > 0) {
return result.get(0);
} return null;
}
initConnection();方法: protected void initConnection() { Connection conn = DataBaseHolder.getThreadConnecton(); DBContextHolder.setContextConnection(conn); }

就是向DBContextHolder注入一个connection的方法。 目前在DBContextHolder接口上面提供基于connection的简单事务处理。

ps:本人语言表达能力有限,还请见谅。

另:寻求喜欢java的兄弟共同合作,我的邮箱wenbindong1984@163.com

基于以上的软件开发的东西有: 一套GAE的bbs(目前还在整界面,我前台太烂,弄来弄去弄不好) 一套基于mysql数据库的bbs--以后会开源 一套权限系统(可以根据url自定义权限)



Project Information