Java 与动态语言的一点东西。
推荐下Js实现Sql 语句 探索莫坛
package com.ctaoyu.framework.module_all.util.js;import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;/*** * Js編譯引擎* * @author 彭秦進 rudys.eva@gmail.com* * @version 1.0* */
public class JSUtil {public static ScriptEngine jsEngine;static {initEngine();}/*** 初始化引擎* * @return*/private static void initEngine() {// create a script engine managerScriptEngineManager factory = new ScriptEngineManager();/*** create engine by name ScriptEngine engine = factory.getEngineByName* ("JavaScript"); // create engine by name ScriptEngine engine =* factory.getEngineByExtension ("js"); // create engine by name* ScriptEngine engine = factory.getEngineByMimeType* ("application/javascript");* */jsEngine = factory.getEngineByName("JavaScript");// return engine;}/*** 解释代码* * @param jsString* @throws Exception */public static void runEngine(String jsString) throws Exception {// TODO Auto-generated method stubJsDataSource sqltool = new JsDataSource();jsEngine.put("sqltool", sqltool);jsEngine.eval(jsString);}/*** * @param args*/public static void main(String[] args) {try {runEngine("");} catch (ScriptException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
package com.ctaoyu.framework.module_all.util.js;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;import com.ctaoyu.framework.module_all.util.ds.ConnectFactory;/*** * DataSource 供Js使用或其他腳本語言使用* * @author 彭秦进 rudys.eva@gmail.com* * @version 1.0* */
public class JsDataSource {/*** 數據庫連接*/private Connection conn;private ResultSet resultSet;/*** @return the resultSet*/public ResultSet getResultSet() {return resultSet;}/*** @param resultSet* the resultSet to set*/public void setResultSet(ResultSet resultSet) {this.resultSet = resultSet;}/*** @return the conn*/public Connection getConn() {return conn;}/*** @param conn* the conn to set*/public void setConn(Connection conn) {this.conn = conn;}/*** open connection* * @throws Exception*/private void openConnect() throws Exception {this.conn = ConnectFactory.currentConnect();}/*** close connection* * @throws Exception*/public void closeConnect() throws Exception {this.resultSet.close();this.conn.close();ConnectFactory.closeConnect();}/*** 執行Sql語句* * @param sql* @throws Exception*/public void doSql(String sql) throws Exception {this.setResultSet(getConn().prepareStatement(sql).executeQuery());}/*** * 取下一條記錄* * @throws SQLException* */public int resultSetNext() throws SQLException {int flag;boolean nextB = getResultSet().next();if (nextB) {flag = 1;} else {flag = 2;}return flag;}/*** 去行記錄* * @param columnName* @return* @throws SQLException*/public String getString(String columnName) throws SQLException {return getResultSet().getString(columnName);}/*** JsDataSource構造函數* * @throws Exception*/public JsDataSource() throws Exception {openConnect();}}
JavaScript 脚本:
sqltool.dosql("select name from person"); while(sqltool.resultSetNext()==1){println(sqltool.getString(name)); } sqltool.closeConnect();
Java 与动态语言的一点东西。相关推荐
- Java是动态语言吗?从《Java核心编程》探索真知
目录 一.Java是动态语言吗? 1.动态语言 2.静态类型 3.<Java核心编程>中探索~~为什么Java可以称之为"准动态语言"? 二.了解ClassLoader ...
- Java是动态语言还是静态语言,是强类型还是弱类型?
一. 前言 今天小熙突然想到一个问题,那就是Java到底是动态语言还是静态语言,是强类型还是弱类型呢?虽然知道但是还是不够深入,接下来就一起探讨下吧. 二. 图释 小熙碰巧看到一张图,完美的区分了以上 ...
- java executor_Java 动态语言支持
JDK6.0之后提供了脚本引擎功能,让我们可以执行某些脚本语言,特别是javascript(javascript是一门解释性语言,动态性非常好),让JAVA的动态性得到更充分的体现,某些时候可以更加灵 ...
- java终结者,动态语言是否会成为JAVA的终结者?
节选自<程序员>2006年第9期<茶杯里的风暴>一文,作者:金尹.如下: P2P网络向传统应用的渗透,将对Ruby.Python这些新兴的编程语言提出巨大的挑战.首先在P2P网 ...
- 为什么可以说Java语言是准动态语言?
什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如JavaScript便是一个典型的动态语言. 除此之外如Ruby.Python ...
- java 是静态语言还是动态_java是动态语言还是静态语言?,
java是动态语言还是静态语言?Java是动态语言还是静态语言?,Java是一种静态语言.Java是编译时确定的变量类型,不能在运行时更改,在类型转换中也是强制的.例如,当大规模整数类型转换为小规模整 ...
- 什么是动态语言(转)
可以简单的理解为直接被解释执行的语言称为动态语言.而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言. 当前静态语言有:Java.C/C++.C#.Delphi.VB等. 动态语言有:ASP ...
- 辨异 —— 不同的编程语言(编译型语言、解释型语言、动态语言、静态语言)...
Java 越来越强大,覆盖领域也越来越多,变得无所不能的时候,和那些仅专注于一个领域的的编程语言相比,它反而显得不够专业: 1. 算符优先级 优先级意味着结合律: C/C++:位运算符(&|^ ...
- 只知道java有反射可以说是动态语言,动态链接,早期晚期绑定、虚方法这些概念你知道吗
目录 开局一张图 动态链接(或指向运行时常量池的方法引用) 为什么需要常量池呢? 早期绑定晚期绑定 静态链接 动态链接 虚方法与非虚方法 非虚方法 虚拟机中提供了以下几条方法调用指令 关于invoke ...
最新文章
- Recyclerview 添加一个数组
- 内核初始化kernel.asm
- (转)Engineering Productivity
- linux安装mysql字符_Linux下MySQL的彻底卸载和安装配置字符集
- WCF 调用webservice
- xajax中的中文乱码问题
- pacemaker+corosync
- pytorch数据处理的操作
- python 内置模块-re
- Hadoop未授权访问漏洞记录(影响版本:全版本,端口号:50070)
- Spring IOC注解开发
- python学习笔记4(对象/引用;多范式; 上下文管理器)
- 23个.net开源项目
- matlab的save函数用法
- 【深入浅出图像算法】图像处理算法入门好文
- 《王二丫的甜品店》用户隐私政策
- item_search - 根据关键词取拼多多商品列表
- 手把手教你在VSCode中使用Git
- batchupdate写法_mybatis执行批量插入insert和批量更新update
- 中国腹肌刺激器行业发展动态与投资前景预测报告(2022-2027)