自己编写了一个方法,通过了编译,未测试。
成都创新互联是专业的围场网站建设公司,围场接单;提供成都网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行围场网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
代码如下,以连接Oracle为例,相关Url,user,password可用使用其它方法替代。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AllTests {
/**
* input: List 保存输入的SQL链表,(只支持查询类SQL语句)
* output:ListListMapString, Object 每个sql执行的结果封装到List中,如果需要封装到Map可以自行增加相关put动作。
**/
public List executeSqlList(ListString sqlList) throws Exception {
ListListMapString, Object result = new ArrayListListMapString, Object();//输出的结果
//输入检查,是否链表为空
if(null==sqlList||sqlList.size()==0)
throw new Exception("输入的sql List 为空");
//数据库连接所需参数
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@IP:POST:orcl";
// orcl为数据库的SID
String user = "user";
String password = "password";
try {
Connection conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
for(int num=0;numsqlList.size();num++)
{
String tempSql = (String)sqlList.get(num);//获取链表中的sql语句
tempSql = tempSql.trim().toUpperCase();
//检查sql是否是查询类型的语句,通过判断前六位是否是"SELECT"来判断是否是查询类sql
if(!"SELECT".equals(tempSql.substring(0,6)))
{
throw new Exception("输入的sql不满足要求,目前只支持查询类别SQL");
}
else
{
ListMapString, Object tempResultList = new ArrayListMapString, Object();
st.execute(tempSql);
ResultSet rs = st.getResultSet();
int i = 1;
if (null != rs) {
ResultSetMetaData rsmt = rs.getMetaData();
MapString, Object titleRecord = new HashMapString, Object();
while (rs.next()) {
MapString, Object recordMap = new HashMapString, Object();
if (null != rsmt rsmt.getColumnCount() 0) {
for (int j = 1; j rsmt.getColumnCount() + 1; j++) {
Object tempColumnValue = (Object) rs.getObject(j);//列数据,需要考虑类别
String columnName = rsmt.getColumnName(j);//列名称
// String columnClassName = rsmt.getColumnClassName(j);//列的类别
if(i==1)
titleRecord.put(columnName, columnName);
recordMap.put(columnName, tempColumnValue);
}
}
if(i==1)//增加表头
tempResultList.add(titleRecord);
tempResultList.add(recordMap);
i++;
}
}
result.add(tempResultList);
}
}
conn.commit();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}
1、获取从页面传过来的参数。
2、把参数添加到Map集合中。
3、进行参数类型的判断和拼接。
4、这样即可用java配置两个参数代码。
public class ObjectArg
{
public String name=" ";
public int age=0;
public String sex=" ";
public void printObjInfo()
{
System.out.println("\t名字:"+this.name);
System.out.println("\t性别:"+this.sex);
System.out.println("\t年龄:"+this.age);
}
}
public class ArgDemo
{
static int intArg=10;
static ObjectArg objectArg=new ObjectArg();
public static void main(String[] args)
{
changeIntArg(intArg);
System.out.println("传递给方法的int类型参数:"+intArg);
System.out.println("intArg="+intArg);
objectArg.age=29;
objectArg.name="李经理";
objectArg.sex="男";
changeOjbectArg(objectArg);
System.out.println("传递给方法的对象");
printObjInfo(objectArg);
}
public static void changeIntArg(int arg)
{
System.out.println("=========实参未改变=========");
System.out.println("changeIntArg()方法开始执行");
System.out.println("int类型参数arg="+arg);
System.out.println("将参数值除以2");
arg=arg/2;
System.out.println("arg="+arg);
}
private static void changeOjbectArg(ObjectArg arg)
{
System.out.println("=========实参被改变=========");
System.out.println("changeOjbectArg()方法开始执行");
System.out.println("输出对象参数:");
arg.printObjInfo();
arg.name="王经理";
arg.sex="女";
arg.age=20;
System.out.println("修改后的对象参数:");
arg.printObjInfo();
}
}
这个应该先在java中把条件确定,然后把条件作为参数传进去
比如 where 1=1 and ${condition}
不过要考虑sql注入
没有很简单的方法,因为Java语言不像JavaScript是一种script语言,而是需要经过编译。在Java语言里就算是直接写一句System.out.print("执行输出");也没法执行啊,得写一个class,再要写main等等。复杂的当然可以写java程序来产生程序,调用编译器编译再运行,但这就是个相当大的工程了。干这种script的事情一般都是用script语言,比如JavaScript里有eval语句,运行在JVM下的有Groovy。
首先这段代码没有发全
片段代码总体意思是模拟了两个数相加,输出结果
private void calculation(String a, String b){ //定义一个私有方法calculation有两个参数 a和b 两个参数的类型为String字符串类型
double v1 = Double.parseDouble(a); //定义一个double类型变量v1,将a变量转换成double类型(double双精度数字类型)赋值给v1
double v2 = Double.parseDouble(b); //定义一个double类型变量v2,将b变量转换成double类型(double双精度数字类型)赋值给v2
double v=0; //定义一个double类型变量v,初始值为0(这里java在编译后应该是double v=0.00D)
switch(op){ //JAVA中的switch函数(方法)参数是op【这里应该是有输入才对,该变量在代码中是有误】
case '+': //当传入的参数op为‘+’执行以下代码即两数相加,并将参数a,b置空
v = v1 + v2;
exit = '0';
a = b = null;
op = 'n';
break;
}
}