我的第一个FreeMarker模板生成java代码的例子
第一步.新建一个模板文件以.ftl结尾。
IDAO.ftl
package com.media.dao;
import java.util.List;
import com.media.bean.${model_name};
import com.media.exceptions.DAOException;
/**
* ${model_name_cn}接口
*
* @author ${author}
* @link ${link}
*
* @version $Revision: 1.00 $ $Date: ${date?string("yyyy-MM-dd HH:mm:ss")}
*/
public interface I${model_name}DAO extends IGenericDAO<${model_name}>{
/**
* 根据${model_name_cn}编号查找${model_name_cn}信息
*
* @param ${instant}Id ${model_name_cn}编号
* @return ${model_name} ${model_name_cn}对象
* @throws DAOException
*/
public ${model_name} find${model_name}ById(Long ${instant}Id) throws DAOException;
/**
* 批量物理删除${model_name_cn}(不可恢复)
* @param ${instant}Ids ${model_name_cn}编号
* @throws DAOException
*/
public void delete${model_name_list}(Long[] ${instant}Ids) throws DAOException;
/**
* 物理删除${model_name_cn}(不可恢复)
* @param ${instant}Id ${model_name_cn}编号
* @throws DAOException
*/
public void delete${model_name}(Long ${instant}Id) throws DAOException;
/**
* 保存${model_name_cn}
* @param ${instant}
* @throws DAOException
*/
public void save${model_name}(${model_name} ${instant}) throws DAOException;
/**
* 更新${model_name_cn}
* @param ${instant}
* @throws DAOException
*/
public void update${model_name}(${model_name} ${instant}) throws DAOException;
/**
* 利用hql语句查询${model_name_cn}信息
* @param hsql
* @throws DAOException
*/
public List<${model_name}> find${model_name_list}(String hsql) throws DAOException;
/**
* 利用hql语句查询${model_name_cn}信息
* @param hsql
* @throws DAOException
*/
public List<${model_name}> find${model_name_list}(String hsql,Object[] params) throws DAOException;
}
第二步.写一个freemaker的工具类用于生成代码。
FreeMarkerUtil.java
注意:工程必须引入freemaker.jar
package com.media.test;
impor
相关文档:
1 Java数据类型有2种。(1)基本数据类型(2)引用数据类型
基本数据类型①布尔型 boolean 1字节
&n ......
11 一个源程序文本文件也可以含有多个类,但每个文件只能有一个公共类。
12 main是所有Java应用程序执行的入口,但不是Java小应用程序的入口。
main的属性必须是public static void。
13 数值类型间的强弱关系
......
由于工作需要,要用.net的程序调用一个java编写的web service接口,接口的一个参数要求md5方式加密。
.net中的md5加密是很容易的,采用msdn中给出的方法:
// Hash an input string and return the hash as
// a 32 character hexadecimal string.
static string getMd5Hash(string input)
{
......
1。使用java.util.Properties类的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
2。使用java.util.ResourceBundle类的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
......
Java语法总结 - 线程
一提到线程好像是件很麻烦很复杂的事,事实上确实如此,涉及到线程的编程是很讲究技巧的。这就需要我们变换思维方式,了解线程机制的比较通用的技巧,写出高效的、不依赖于某个JVM实现的程序来。毕竟仅仅就Java而言,各个虚拟机的实现是不同的。学习线程时,最令我印象深刻的就是那种不确定性、没有保 ......