1、项目地址与类的包名路径
String pro = System.getProperty("user.dir"); String pkg = CgSpringMvcIbatis.class.getPackage().getName().replaceAll("\\.","\\\\");
2、根据模板生成文件(用时需修改)
Template tJsp = cfg.getTemplate("js.ftl");// 模板名称 tJsp.setEncoding("UTF-8"); String jspDir = jMap.get("conpath").toString(); File fileDir = new File(jspDir); org.apache.commons.io.FileUtils.forceMkdir(fileDir); File output_service = new File(jspDir + "/default.js"); Writer writer_service = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output_service), "UTF-8")); tJsp.process(jMap, writer_service); writer_service.close();
3、泛型接口Ibatis
/** * Ibatis Dao 接口 * 通用增删改查\带分页\单条 * @author mywhile * @param <T> */ public abstract interface IbatisDao<T> { public void delete(String guid, String sqlMapId); public void save(T bean, String sqlMapId); public void update(T bean, String sqlMapId); public List<T> query(String sqlMapId); public T queryRowByGuid(String guid, String sqlMapId); public List<T> queryPageData(String sqlMapId, Map map, int pageNo, int pageSize); public int queryCountRow(Map map, String SqlMapId); }
4、泛型接口实现Ibatis
import java.util.List; import java.util.Map; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import sdcncsi.ibatis.test.dao.IbatisDao; @SuppressWarnings("unchecked") public class IbatisServicesImpl<T> extends SqlMapClientDaoSupport implements IbatisDao<T> { @Override public void delete(String guid, String sqlMapId) { getSqlMapClientTemplate().delete(sqlMapId, guid); } @Override public List<T> query(String sqlMapId) { return getSqlMapClientTemplate().queryForList(sqlMapId); } @Override public T queryRowByGuid(String guid, String sqlMapId) { return (T) getSqlMapClientTemplate().queryForObject(sqlMapId, guid); } @Override public void save(T bean, String sqlMapId) { getSqlMapClientTemplate().insert(sqlMapId, bean); } @Override public void update(T bean, String sqlMapId) { getSqlMapClientTemplate().update(sqlMapId, bean); } @Override public List<T> queryPageData(String sqlMapId, Map map, int pageNo, int pageSize) { map.put("pageNo", pageNo == 1 ? 0 : pageSize); map.put("pageSize", pageSize); return getSqlMapClientTemplate().queryForList(sqlMapId, map);//, pageNo, pageSize } @Override public int queryCountRow(Map map, String sqlMapId) { return (Integer) getSqlMapClientTemplate().queryForObject(sqlMapId, map); } }
5、Ibatis中取SQL
String sql = null; SqlMapClientImpl sqlmap = (SqlMapClientImpl)this.getSqlMapClient(); MappedStatement stmt = sqlmap.getMappedStatement(sqlMapId); Sql stmtSql = stmt.getSql(); SessionScope session = new SessionScope(); StatementScope scope = new StatementScope(session); scope.setStatement(stmt); sql = stmtSql.getSql(scope, map);
6、附件=Spring+Ibatis代码生成器;
7、文件读取
/** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 * @param fileName 文件的名 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取文件内容,一次读多个字节:"); // 一次读多个字节 byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); FileReadWrite.showAvailableBytes(in); // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { System.out.write(tempbytes, 0, byteread); } } catch (Exception e1) { e1.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e1) { } } } } /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 * @param fileName 文件名 */ public static void readFileByChars(String fileName) { File file = new File(fileName); Reader reader = null; try { System.out.println("以字符为单位读取文件内容,一次读一个字节:"); // 一次读一个字符 reader = new InputStreamReader(new FileInputStream(file)); int tempchar; while ((tempchar = reader.read()) != -1) { // 对于windows下,rn这两个字符在一起时,表示一个换行。 // 但如果这两个字符分开显示时,会换两次行。 // 因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。 if (((char) tempchar) != 'r') { System.out.print((char) tempchar); } } reader.close(); } catch (Exception e) { e.printStackTrace(); } try { System.out.println("以字符为单位读取文件内容,一次读多个字节:"); // 一次读多个字符 char[] tempchars = new char[30]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); // 读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars)) != -1) { // 同样屏蔽掉r不显示 if ((charread == tempchars.length) && (tempchars[tempchars.length - 1] != 'r')) { System.out.print(tempchars); } else { for (int i = 0; i < charread; i++) { if (tempchars[i] == 'r') { continue; } else { System.out.print(tempchars[i]); } } } } } catch (Exception e1) { e1.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 以行为单位读取文件,常用于读面向行的格式化文件 * @param fileName 文件名 */ public static void readFileByLines(String fileName) { File file = new File(fileName); BufferedReader reader = null; try { System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new FileReader(file)); String tempString = null; int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { // 显示行号 System.out.println("line " + line + ": " + tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 随机读取文件内容 * @param fileName 文件名 */ public static void readFileByRandomAccess(String fileName) { RandomAccessFile randomFile = null; try { System.out.println("随机读取一段文件内容:"); // 打开一个随机访问文件流,按只读方式 randomFile = new RandomAccessFile(fileName, "r"); // 文件长度,字节数 long fileLength = randomFile.length(); // 读文件的起始位置 int beginIndex = (fileLength > 4) ? 4 : 0; // 将读文件的开始位置移到beginIndex位置。 randomFile.seek(beginIndex); byte[] bytes = new byte[10]; int byteread = 0; // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 // 将一次读取的字节数赋给byteread while ((byteread = randomFile.read(bytes)) != -1) { System.out.write(bytes, 0, byteread); } } catch (IOException e) { e.printStackTrace(); } finally { if (randomFile != null) { try { randomFile.close(); } catch (IOException e1) { } } } } /** * 显示输入流中还剩的字节数 * @param in */ private static void showAvailableBytes(InputStream in) { try { System.out.println("当前字节输入流中的字节数为:" + in.available()); } catch (IOException e) { e.printStackTrace(); } } /** * 将内容追加到文件尾部 * A方法追加文件:使用RandomAccessFile * @param fileName 文件名 * @param content 追加的内容 */ public static void appendMethodA(String fileName, String content) { try { // 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); // 文件长度,字节数 long fileLength = randomFile.length(); // 将写文件指针移到文件尾。 randomFile.seek(fileLength); randomFile.writeBytes(content); randomFile.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 将内容追加到文件尾部 * B方法追加文件:使用FileWriter * @param fileName * @param content */ public static void appendMethodB(String fileName, String content) { try { // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter(fileName, true); writer.write(content); writer.close(); } catch (IOException e) { e.printStackTrace(); } }
8、Myeclipse生成序列号
相关推荐
描述中虽然没有给出具体信息,但我们可以推测这个压缩包包含了一系列官方扩展的C#代码片段,这些片段可能涵盖了许多常见的编程任务,如数据访问、网络通信、UI交互等。开发者可以将这些代码段导入到他们的IDE中,...
程序可以被分解成许多段代码、数据等组成的逻辑单元,如 main program、procedure、function、method、object、local variables、global variables、common block、stack、symbol table、arrays 等。每个段都可以...
在JavaSE阶段,学习者会接触到许多核心概念和技术,这些在后续的JavaEE(企业版)和Android开发中都至关重要。"javase阶段15个实战项目代码"的压缩包包含了15个小项目的源代码,旨在帮助学习者通过实践来深化对Java...
"超实用的javascript代码段"是席新亮著作的一个资源集合,提供了许多实际开发中常用且高效的代码片段,对于学习和提升JavaScript编程技能非常有帮助。 一、基础语法与类型 JavaScript的基础语法包括变量声明(var、...
下面将详细介绍如何在EditPlus中实现整段代码的缩进操作。 首先,我们来看向右缩进的操作。当你编写或阅读代码时,可能需要将某段代码整体向右移动,以创建内嵌的代码块,例如在控制结构(如if语句、for循环)内部...
代码注入是指将一段代码插入到另一个正在运行的进程的地址空间中,使得这段代码能够在目标进程中执行。这种方法可以用来绕过某些安全机制,或者在不修改原有程序的情况下影响其行为。常见的代码注入技术包括DLL注入...
8. **格式化整个文件或选定代码段**:用户可以选择格式化整个源文件,或者仅格式化当前选中的代码区域。 9. **自定义规则**:允许用户根据项目或团队的需求自定义代码格式化规则。 10. **版本控制系统兼容**:工具...
【7段LED HEX代码生成器】是一款专为电子工程师和爱好者设计的实用工具,它能够帮助用户快速便捷地生成7段LED显示器所对应的十六进制编码。7段LED显示器通常用于数字和字母显示,每个字符由7个独立的发光二极管组成...
“好铭堂超级弹窗广告系统”是一个可以用一行链接或一小段音视频播放代码调用,就能随意在各种博客首页、博文中、论坛贴子中、电子邮件中弹出广告、视频、网页,而不被浏览器和一些软件拦截 。不用你安装使用什么...
如果一段代码从未被执行,那么与之相关的内存分配也就不会发生,这在"Leaks"工具中可能会显示为无泄漏。然而,这种方法并不完全准确,因为它依赖于代码执行,无法检测静态初始化的代码。 此外,Xcode的Analyzer...
标题中的“可以动态执行程序代码的程序”是指一种软件或框架,它允许用户在运行时输入或提供代码,然后即时编译和执行这段代码。这种功能通常被用于教学环境、脚本编写、自动化任务或者在应用程序中提供自定义扩展的...
这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...
这段代码示例可能就是一个简单的查询功能,帮助用户查找满足特定条件的数据,例如查询某时段内的订单、菜品销售情况或者会员信息。下面我们将深入探讨与这段代码相关的多个Delphi编程和餐饮系统开发的关键概念。 ...
3. **代码片段管理**:对于常用的代码段,可以保存为代码片段,方便日后快速插入到项目中。 4. **扩展性**:高级的代码生成器通常允许开发者编写自定义插件,以实现更复杂的代码生成逻辑。 5. **集成开发环境(IDE...
它可以帮助开发者高效地定位修改过的行、新增的代码块以及删除的代码段,从而提高工作效率。 源代码对比器通常具有以下关键功能: 1. 差异高亮:对比器会以不同的颜色或标记显示不同文件间的差异,使得用户能快速...
在实际应用中,这段代码可能需要进行浏览器兼容性测试,确保在不同的浏览器环境中也能正常工作。虽然提到了Chrome已通过测试,但其他浏览器可能需要额外的兼容性处理。 最后,描述中还提到了一个在线测试的DEMO链接...
随着Web技术的发展,JavaScript也衍生出许多框架和库,如jQuery、React、Vue和Angular,它们简化了DOM操作,提高了开发效率,同时带来了更丰富的功能。 在实际应用中,为了保证代码的安全性,浏览器对网页内运行的...
这段代码包含了许多数值和一些可能是函数、变量或者特定指令的符号。接下来,我们将尝试解读这些信息,并将其归纳为几个主要的知识点。 ### 知识点一:代码结构与组成 在给定的内容中,可以看到许多数值,例如`...
这个压缩包“ASP.NET学习积累的代码段”显然是一个宝贵的资源,包含了作者在长期实践中整理的ASP.NET基础知识和代码示例,非常适合初学者用来学习和理解这个技术。 在ASP.NET中,基础控件是构建网页界面的关键元素...