jifinal-增删改查及上传图片的实现

来源:互联网 发布:消防大数据平台 编辑:程序博客网 时间:2024/06/05 18:21

之前写了一段时间PHP,现在写java有一些不适应的地方,好在我现在已经实现了增删改查,以及上传图片,其中删除是假删除就是update了删除标志,实现删除在练习时实现过,到说到删除的时候会分开说。

这次公司项目使用的是jifinal+freemarker+mysql,前端就不说了,除了mysql,jifinal和freemarker对我来说都是全新的东西,还有java语言基础也基本没有,所以是边写程序边学习。

1、java的数据走向

freemarker给我的感觉是与smarty的作用一毛一样,有了freemarker实现了java与前端代码的分离,所以使用的时候还是十分亲切的。具体语法看的是前辈的博客:
http://http://blog.csdn.net/fhx007/article/details/7902040/
感兴趣的可以看看,基本够用。

可能懂java的觉得这是常识,对我来说还是晕了一会儿时间的,controller/service/xml那些php可以写在一个文件里,事实上java也可以都写在controller里,但是没有这样做,我觉得这是java的一个特点。
xml:写sql语句,
service:对数据库的操作、接收controller传过来的数据、传数据给controller,
controller:调用service的方法,传数据给service,渲染页面等等。

2、准备工作

  1. 首先在数据库里建这个表
  2. 运行一下自动生成model的文件,会自动生成model和basemodel这个需要自己写,可以多次使用,很方便 ,不过这个不是我写的,我也不会写,用起来很方便。

    package com.mult.model;import javax.sql.DataSource;import com.jfinal.kit.PathKit;import com.jfinal.kit.PropKit;import com.jfinal.plugin.activerecord.generator.Generator;import com.jfinal.plugin.c3p0.C3p0Plugin;import com.mult.tools.ToolDataBase;//在数据库表有任何变动时,运行一下 main 方法,极速响应变化进行代码重构public class _JMultGenerator {public static DataSource getDataSource() {    C3p0Plugin c3p0Plugin = createC3p0Plugin();    c3p0Plugin.start();    return c3p0Plugin.getDataSource();}public static C3p0Plugin createC3p0Plugin() {    //return new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());    PropKit.use("config.properties");    return new C3p0Plugin(ToolDataBase.getDBInfo().jdbcUrl, ToolDataBase.getDBInfo().userName, ToolDataBase.getDBInfo().passWord);}public static void main(String[] args) {// base model 所使用的包名String baseModelPackageName = "com.mult.model.base";// base model 文件保存路径String baseModelOutputDir = PathKit.getWebRootPath() + "/../src/com/mult/model/base";// model 所使用的包名 (MappingKit 默认使用的包名)String modelPackageName = "com.mult.model";// model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)String modelOutputDir = baseModelOutputDir + "/..";// 创建生成器Generator gernerator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir,        modelPackageName, modelOutputDir);// 添加不需要生成的表名gernerator.addExcludedTable("adv");// 设置是否在 Model 中生成 dao 对象gernerator.setGenerateDaoInModel(true);// 设置是否生成字典文件gernerator.setGenerateDataDictionary(true);// 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 User// 而非 OscUsergernerator.setRemovedTableNamePrefixes("sys_");// 生成gernerator.generate();}}

    3.创建一个xml文件存放sql语句,一般一个功能一个controller一个service一个sql.xml,我是这样分的

    <?xml version="1.0" encoding="UTF-8"?>    <!--练习表操作 -->    <sql-statement namespace="System">        <!--查询练习表内容 -->        <sql id="PracticeQuery">            <![CDATA[                SELECT                    *                FROM                    sys_practice                ORDER BY                    practice_id             ]]>        </sql>          <sql id="selectbyid">            <![CDATA[                SELECT                    *                FROM                    sys_attach                 WHERE                    attach_deletetag = 0                And                    attach_expertid=?            ]]>        </sql>              </sql-statement>

    如代码段所示,上面是随便写的,意思是可以写多个语句,需要传的参数写成?,id值要不一样,在service里是根据id值来调用sql语句的

3.实现查找功能

未完待续。。

0 0
原创粉丝点击