关键点:Pattern实现SQL拆解、ZeroClipboard.js实现复制到剪切板

主要代码:

<%@ page language="java" import="java.util.*,java.util.regex.*,java.io.*,com.egeniuss.jxibs.util.*" pageEncoding="UTF-8"%>
<%
String srcSQL = request.getParameter("srcSQL");
StringBuffer targetSQL = new StringBuffer(); if (!ObjectUtil.isNull(srcSQL)){
srcSQL = new String(srcSQL.getBytes("8859_1"),"UTF-8");
String[] lineArr = srcSQL.split("[\\n]+");
for (int i = 0 ; i < lineArr.length ; i ++){
Pattern p = Pattern.compile("\t|\r|\n");
Matcher m = p.matcher(lineArr[i]);
String strNoN = m.replaceAll(" ");
int spaceLength = strNoN.indexOf(strNoN.trim());
if (i != 0){
targetSQL.append("+").append(StringUtil.repeat(" ", spaceLength));
}
targetSQL.append("\"").append(strNoN.trim()).append(" \"");
if (i != (lineArr.length - 1)){
targetSQL.append("\n");
}
}
}else{
srcSQL = "";
} %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>sql代码格式化</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--author:李小家-->
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="/tools/ZeroClipboard.js"></script>
<script language="JavaScript">
var clip = null; function $(id) { return document.getElementById(id); } function init() {
clip = new ZeroClipboard.Client();
clip.setHandCursor( true ); clip.addEventListener('mouseOver', my_mouse_over);
clip.addEventListener('complete', my_complete); clip.glue( 'd_clip_button' );
} function my_mouse_over(client) {
clip.setText( $('fe_text').value );
} function my_complete(client, text) {
$('tip').innerHTML="复制成功";
} </script>
</head> <body onLoad="init()">
<form name="form1" method="post" action="/tools/sql2Java.jsp">
<table>
<tr>
<td><textarea name="srcSQL" style="width:1200px;height:400px" ><%=srcSQL.toString()%></textarea></td>
</tr>
</table>
<input type="submit" value="生成JAVA代码" />&nbsp;&nbsp;<input type="button" id="d_clip_button" value="复制代码" />&nbsp;&nbsp;<span id="tip"></span><br/>
<table>
<tr>
<td><textarea id="fe_text" onChange="clip.setText(this.value)" style="width:1200px;height:400px" ><%=targetSQL.toString()%></textarea></td>
</tr>
</table>
</form>
</body>
</html>

界面效果:

把调试好的SQL语句转换为JAVA代码小工具的更多相关文章

  1. 在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  2. SQL转Java代码小工具

    工作中使用SQL的时候很多,当使用hibernate的时候,经常遇到多行的SQL,通常在PL/SQL或其他地方写好SQL,测试没问题后,需要将SQL写到程序代码中,多行SQL需要拼接字符串,手动一行行 ...

  3. 三个 DAL 相关的Java代码小工具

    最近在做 DAL (Data Access Layer 数据访问层) 的服务化,发现有不少地方是人工编写比较繁琐的,因此写了几个小工具来完成. 1.  从 DAO 类自动生成 CoreService ...

  4. 在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计、SQL语句、java等层面的解决方案。

    在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计.SQL语句.java等层面的解决方案. 解答: 1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 whe ...

  5. PHP mysqli 增强 批量执行sql 语句的实现代码

    本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...

  6. Java代码混淆工具ProGuard

    目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...

  7. eclipse Java代码折叠工具

      eclipse Java代码折叠工具 CreateTime--2018年5月17日15点09分 Author:Marydon 1.问题描述 eclipse自带的代码折叠工具,无法折叠try{}ca ...

  8. java 编写小工具 尝试 学习(七)

    1.在java 编写小工具 尝试 学习(六)里学会了,控件 的随意摆放, 以及大小(x,y,width,height),又根据前面学习的按钮 被点击 的事件监控 的方法 ,点击 按钮 在显示区域显示“ ...

  9. jdbc中SQL语句拼接java变量

    例如:String sql = "select * from user where username='" + username + "' and password =' ...

随机推荐

  1. SetTimer的使用

    SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器.计时器属于系统资源,使用完应及时销毁. SetTimer的函数原型如下:UINT_PTR SetTimer( HWND ...

  2. ios 从微信返回自己的app

    有这样一个需求.从我们自己的app分享内容到微信.点击分享内容返回到我们自己的app.(新浪微博的内容分享到微信就是这样的) 前面一直百度,谷歌都没用.可能我用的方法跟他们不一样吧.而且他们的方法都比 ...

  3. c#中的重写方法与隐藏方

    1.父类中有方法a,添加virtua修饰符可声明为虚方法,在子类中可以用override声明后重写方法a. 2.父类中有方法a,在子类中可以有new修饰符声明后隐藏父类方法. 子类重写方法后,对于子类 ...

  4. MVVM学习笔记

    MVVM学习笔记 1.MVVM的简介 MVVM模式是Model-View-ViewModel模式的简称,也就是由模型(Model).视图(View).视图模型(ViewModel),其目的是为了实现将 ...

  5. nginx图片服务器配置

    worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/erro ...

  6. VMProtect使用小计【一】

    文章列表 VMProtect使用小计[一] – 初次使用VMProtect使用小计[二] – 加壳查看VMProtect使用小计[三] – 权限管理 说明 VMProtect的功能我就不说了,详情大家 ...

  7. 清理SQL多余登录信息

    服务器列表.登陆帐户.密码等信息都记录在 %AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin (2008)%A ...

  8. js data日期初始化的5种方法new Date()

    var objDate=new Date([arguments list]); 参数形式有以下5种: 1)new Date("month dd,yyyy hh:mm:ss"); 2 ...

  9. MySql中常用语句

    1.查询语句: SELECT  查询字段  FROM  表名   WHERE 条件 查询字段可以使用 通配符* 字段名 别名(把长的名字命名一个别名,比较短的) 通配符:SELECT * FROM ' ...

  10. CentOS6.4 安装aria2多线程下载工具

    aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他 ...