您的位置:首页 > 编程语言 > Java开发

如何在javaWeb/javaEE环境中使用JDiy

2013-05-26 14:20 295 查看
一、配置JDiy运行环境
  1. 下载得到JDiy最新版的压缩包,在压缩包根目录下有一个名为"JDiy-n.n.jar"的文件(其中n.n代表版本号),这个文件是JDiy框架的核心类库文件,请先将其放到WEB-INF/lib目录中;
  2. 将下面列出的这些JDiy框架所依赖的类库文件也一并放到WEB-INF/lib目录中。
(注:您可以从JDiy下载的压缩包的depend-jars目录中找到这些文件)
ant.jar;
dom4j-1.6.1.jar;
jaxen-1.1.3.jar;
log4j-1.2.15;
mail.jar;
slf4j-api-1.5.6.jar;
slf4j-log4j12-1.5.6.jar
  3.  再看您使用的是什么数据库,从JDiy下载的压缩包的databases目录中找到对应的数据库驱动,一并添加到WEB-INF/lib目录。例如我们以MySQL为例,则将databases/MySQL/mysql-connector-java-5.1.15-bin.jar这个文件放到项目的lib目录下。
  另外值得在此提示一下,如果您有很多个WEB项目都用到了JDiy,您也可以将上述文件直接放到JSP容器(例如Tomcat)的lib库目录中去,这样您就无需在每个WEB项目的/WEB-INF/lib/目录下放置这些文件了.这将有利于后期系统的升级,同时也会节省Tomcat的内存资源.(这样做,JDiy会针对多个项目进行统一管理和优化.)

  4. 将JDiy的XML配置文件(即下载的JDiy压缩包根目录下的jdiy.xml)放到项目的WEB-INF/classes/类路径下.并修改jdiy.xml配置文件中的数据库连接信息.例如下面的配置代码段(请修改下面红色的数据库连接信息部分):
   ......前面的省略

   <databases default="def" showSql="true">

       <database name="def">

           <type>MYSQL</type> <!-- database type -->

           <host>127.0.0.1</host>
<!-- database hostname -->

           <port>3306</port>
<!--port number-->

           <name>jdiy_db</name>
<!-- database name -->

           <uid>root</uid>
<!--database username-->

           <pwd>123456</pwd>
<!--database password-->

           <maxPools>32</maxPools>

           <maxed>WAIT</maxed>

       </database>

       ......后面的省略
  5. 配置JDiy的装载器, 修改WEB-INF/web.xml文件,在web-app节点下面新增如下代码:

<filter>

   <filter-name>JDiyLoader</filter-name>

   <filter-class>net.jdiy.core.JDiyLoadFilter</filter-class>
<!--下面定义JDiy配置文件位置,默认值为jdiy.xml(相对于WEB-INF/classes/目录).

               如要修改配置文件位置,请修改param-value里面的值并取消注释.-->

   <!--    <init-param>

           <param-name>xmlLocation</param-name>

           <param-value>subdir1/subdir2/jdiy.xml</param-value>

       </init-param>   -->

</filter>

<filter-mapping>

       <filter-name>JDiyLoader</filter-name>

       <url-pattern>/*</url-pattern>

</filter-mapping>
  上面代码的注释部分可以去掉,从上面代码可以看出,其实JDiy的装载器,就是一个Filter而已.添加上这个Filter,就可以在您的代码中使用JDiy啦.
特别注意:如果您还使用了Servlet, 或其它的java框架(例如Struts), 要在这些Servlet或者Struts Action中使用JDiy,您必须将这个Filter置于其它框架的配置代码段之前(这一点非常重要)! 另外,上面的配置中,<url-pattern>/*</url-pattern>这一行,请保持不变,不要去修改,以使JDiy的装载器作用于整个项目.

二. 使用JDiy操作数据库

  经过上面的配置,如果不是因为您配置错误的话,您已经可以在您的WEB项目中使用JDiy了(无论是Struts-Action,  Servlet还是JSP页面中都可以使用).

  假设您有一个用于测试的数据表(表名为test, 有三个字段, id, name, age, 您可以在mysql中通过下面的DDL建表语句创建一个这样的数据表):
create table test (
   id int(11) primary key not null auto_increment,

   name varchar(50),
   age int(11)
)
  下面的代码演示了如何在JSP页面中使用JDiy操作数据库:
test.jsp 示例代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="net.jdiy.core.*" %>

<html>

<head><title>JDiy demo</title></head>

<body>

<%
//Web环境下用App类来获取JDiy上下文(它是JDiyContext的子类),注意用的是静态方法,因此无论是Servlet, 还是Struts Action中都可以这样写.

   App app = App.get();
//下面获取默认的数据库操作DAO

   Dao dao = app.getDao();

//下面创建一个Rs对象(即对应数据库中的记录)

   Rs rs = new Rs("test");

   rs.set("name", "张三");

   rs.set("age", 18);

   dao.save(rs);//写入数据库

   out.println(rs.get("id"));//写入数据库后可直接从rs中取到自增的主键ID值

//再来创建一个,设置数据库字段的值时,可以连着写喔~~

   Rs rs1 = new Rs("test").set("name", "李四").set("age", 27);

   dao.save(rs1);//写入数据库

//把test表中的数据全查出来

   Ls ls = dao.ls(new Args("test"));
//循环输出看一下:

   for (Rs item : ls.getItems()) {

       out.print("姓名:" + item.get("name") + "; 年龄:" + item.get("age") + "<br/>");
//输出之后把这条记从数据库中删除:

       dao.del(item);

       out.print("已经删除了!<br />");

   }

%>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JDiy
相关文章推荐