All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.j2mvc.framework.dao.callback.Creator Maven / Gradle / Ivy

Go to download

强烈建议使用J2mvc 2.1以后的版本。 version 2.1.01 1.优化路径跳转,Servlet和Filter方式的路径设置 2.优化内存销毁 3.更换JSON依赖包 4.优化接收方法RequestMethod,封装不同ContentType格式提交 封装JSON,XML数据提交模块 JSON请求示例 { "id":"JSON134851", "title":"JSON提交的标题", "price":65.1, "stock":100 } XML请求示例 <!DOCTYPE root [ <!ELEMENT root ANY> <!ATTLIST Product SSN ID #REQUIRED>]> <root> <Product SSN='id'>XMLID12354</Product> <Product SSN='title'>XML提交的标题 </Product> <Product SSN='price'>55 </Product> <Product SSN='stock'>32 </Product> </root> version 2.1.02 1.解决URL无后缀情况无法加载静态资源,解决无法渲染CSS文件。 version 2.1.03 1.移除com.j2mvc.StringUtils.getUtf8()方法调用 更改为getCharset() version 2.1.04 1.去除Servlet和Filter的全局变量销毁,只交给Listener处理。 version 2.1.05,2.1.06,2.1.07 1.完善POST提交的JSON数据 支持接收基础数据类型、任意对象类型、任意数组类型。 不支持接收参数为集合类型或Map类型,但可以定义为接收对象类型的元素。 version 2.1.05,2.1.06,2.1.07 1.修改连接池变量 version 2.1.09 增加上传功能,修改RequestMethod,ContentType设置方式 version 2.1.10,2.1.11 更改上传文件名格式为UUID格式,移除JSON映射类,更改接收多文件上传。 version 2.1.12 删除文件列有的空对象 version 2.1.13 增加配置文件目录/conf,加载上传功能配置/conf/upload.properties version 2.1.18 拦截器也能获取ActionBean version 2.1.20 添加上传文件只读权限 version 2.1.21 支持同时接收文件和文本数据 version 2.1.22 增加文件接收类型media version 2.1.23 删除upload类printJson方法

The newest version!
package com.j2mvc.framework.dao.callback;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

import org.apache.log4j.Logger;

import com.j2mvc.framework.Session;

/**
 * 创建预编译语句
 * @author 杨朔
 * 2014年3月28日 创建
 */
public class Creator extends PreparedStatementCreator {
	static final Logger log = Logger.getLogger(Creator.class);

	private String sql;
	private Object[] values;
	
	public Creator(String sql, Object[] values) {
		super();
		this.sql = sql;
		this.values = values;
	}
	@Override
	public PreparedStatement execute(Connection con)throws SQLException {
		PreparedStatement pstmt = con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
		if(Session.sqlLog)
			log.info("编译前语句 >> "+pstmt.toString().split(":")[1].replaceAll("\\*\\* NOT SPECIFIED \\*\\*", "?"));
		if(values!=null)
		for(int i=0;i clazz = value.getClass();
			// 得到数据类型
			if(String.class.isAssignableFrom(clazz) ||
					Date.class.isAssignableFrom(clazz)){
				pstmt.setString(index, value!=null?String.valueOf(value):null);
			}else if(Integer.class.isAssignableFrom(clazz)){
				pstmt.setInt(index, (Integer)value);
			}else if(Long.class.isAssignableFrom(clazz)){
				pstmt.setLong(index, value!=null?(Long)value:null);
			}
			else if(Float.class.isAssignableFrom(clazz))
				pstmt.setFloat(index, (Float) value);
			else if(Double.class.isAssignableFrom(clazz))
				pstmt.setDouble(index, (Double) value);
			else if(Boolean.class.isAssignableFrom(clazz))
				pstmt.setBoolean(index, (Boolean) value);
			else if(InputStream.class.isAssignableFrom(clazz))
				try {
					pstmt.setBinaryStream(index, (InputStream)value,
					        ((InputStream)value).available());
				} catch (IOException e) {
					e.printStackTrace();
				}
			else{
				pstmt.setBytes(index, StreamUtil.objectToBytes(value));		
			}
		}
		if(Session.sqlLog)
			log.info("编译后 >> "+pstmt);
		return pstmt;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy