Skip to content

Commit

Permalink
将BLOB外部类型改为byte[],CLOB外部类型改为String
Browse files Browse the repository at this point in the history
  • Loading branch information
10km committed Jul 12, 2017
1 parent d6c9d12 commit ef09809
Show file tree
Hide file tree
Showing 2 changed files with 120 additions and 32 deletions.
65 changes: 33 additions & 32 deletions sql2java.jar.src/net/sourceforge/sql2java/Column.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
package net.sourceforge.sql2java;

import java.io.PrintStream;
import java.sql.Types;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
Expand Down Expand Up @@ -441,8 +442,8 @@ public String getJavaType() {
case 3 : {
return "byte[]";
}
case 4 : {
return "java.sql.Clob";
case M_CLOB : {
return "String";
}
case 5 : {
return "java.sql.Date";
Expand All @@ -456,8 +457,8 @@ public String getJavaType() {
case 8 : {
return "Float";
}
case 9 : {
return "java.sql.Blob";
case M_BLOB : {
return "byte[]";
}
case 10 : {
return "Integer";
Expand Down Expand Up @@ -755,17 +756,17 @@ public String getResultSetMethodObject(String resultSet, String pos) {
case 3 : {
return resultSet + ".getBytes(" + pos + ")";
}
case 9 : {
return resultSet + ".getBlob(" + pos + ")";
case M_BLOB : {
return CodeWriter.MGR_CLASS + ".getBlob(" + resultSet + ", " + pos + ")";
}
case 2 : {
return CodeWriter.MGR_CLASS + ".getBoolean(" + resultSet + ", " + pos + ")";
}
case 13 : {
return resultSet + ".getString(" + pos + ")";
}
case 4 : {
return resultSet + ".getClob(" + pos + ")";
case M_CLOB : {
return CodeWriter.MGR_CLASS + ".getClob(" + resultSet + ", " + pos + ")";
}
case 16 : {
return resultSet + ".getURL(" + pos + ")";
Expand Down Expand Up @@ -833,75 +834,75 @@ public String getPreparedStatementMethod(String var, String pos) {
end.append(" }");
}
switch (this.getMappedType()) {
case 0 : {
case M_ARRAY : {
return sb.append("ps.setArray(").append(end).toString();
}
case 11 : {
case M_LONG : {
return sb.append(CodeWriter.MGR_CLASS).append(".setLong(ps, ").append(end).toString();
}
case 3 : {
case M_BYTES : {
return sb.append("ps.setBytes(").append(end).toString();
}
case 9 : {
return sb.append("ps.setBlob(").append(end).toString();
case M_BLOB : {
return sb.append(CodeWriter.MGR_CLASS).append(".setBlob(ps, ").append(end).toString();
}
case 2 : {
case M_BOOLEAN : {
return sb.append(CodeWriter.MGR_CLASS).append(".setBoolean(ps, ").append(end).toString();
}
case 13 : {
case M_STRING : {
return sb.append("ps.setString(").append(end).toString();
}
case 4 : {
return sb.append("ps.setClob(").append(end).toString();
case M_CLOB : {
return sb.append(CodeWriter.MGR_CLASS).append(".setClob(ps, ").append(end).toString();
}
case 16 : {
case M_URL : {
return sb.append("ps.setURL(").append(end).toString();
}
case 1 : {
case M_BIGDECIMAL : {
return sb.append("ps.setBigDecimal(").append(end).toString();
}
case 7 : {
case M_DOUBLE : {
return sb.append(CodeWriter.MGR_CLASS).append(".setDouble(ps, ").append(end).toString();
}
case 10 : {
case M_INTEGER : {
return sb.append(CodeWriter.MGR_CLASS).append(".setInteger(ps, ").append(end).toString();
}
case 17 : {
case M_OBJECT : {
return sb.append("ps.setObject(").append(end).toString();
}
case 8 : {
case M_FLOAT : {
return sb.append(CodeWriter.MGR_CLASS).append(".setFloat(ps, ").append(end).toString();
}
case 5 : {
case M_SQLDATE : {
return sb.append("ps.setDate(").append(end).toString();
}
case 14 : {
case M_TIME : {
return sb.append("ps.setTime(").append(end).toString();
}
case 15 : {
case M_TIMESTAMP : {
return sb.append("ps.setTimestamp(").append(end).toString();
}
case 6 : {
case M_UTILDATE : {
switch (this.getType()) {
case 93 : {
case Types.TIMESTAMP : {
return sb.append("ps.setTimestamp(").append(pos).append(", new java.sql.Timestamp(").append(var)
.append(".getTime())); }").toString();
}
case 91 : {
case Types.DATE : {
return sb.append("ps.setDate(").append(pos).append(", new java.sql.Date(").append(var)
.append(".getTime())); }").toString();
}
case 92 : {
case Types.TIME : {
return sb.append("ps.setTime(").append(pos).append(", new java.sql.Time(").append(var)
.append(".getTime())); }").toString();
}
}
return null;
}
case 18 : {
case M_CALENDAR : {
return sb.append(CodeWriter.MGR_CLASS).append(".setCalendar(ps, ").append(end).toString();
}
case 12 : {
case M_REF : {
sb.setLength(0);
sb.append("ps.setRef(").append(end);
sb.setLength(sb.length() - 2);
Expand Down
87 changes: 87 additions & 0 deletions src/templates/velocity/java5/perschema/manager.java.vm
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ package $pkg;
import java.io.InputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.ByteArrayInputStream;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.sql.Blob;
import java.sql.Clob;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
Expand Down Expand Up @@ -479,6 +483,89 @@ public final class Manager
}
}

/**
* Retrieves a byte array from the passed result set as a Blob object.
*/
public static byte[] getBlob(ResultSet rs, int pos) throws SQLException
{
Blob blob = rs.getBlob(pos);
if( rs.wasNull() ){
return (Blob)null;
}else{
return blob.getBytes(1,blob.length());
}
}

/**
* Retrieves a byte array from the passed result set as a Blob object.
*/
public static byte[] getBlob(ResultSet rs, String column) throws SQLException
{
Blob blob = rs.getBlob(column);
if( rs.wasNull() ){
return (Blob)null;
}else{
return blob.getBytes(1,blob.length());
}
}

/**
* Set a byte array to the passed prepared statement as a Blob or as null.
*/
public static void setBlob(PreparedStatement ps, int pos, byte[] blob) throws SQLException
{
if (blob==null)
{
ps.setNull(pos, Types.BLOB);
}
else
{
ps.setBlob(pos, new ByteArrayInputStream(blob));
}
}

/**
* Retrieves a String from the passed result set as a Clob object.
*/
public static String getClob(ResultSet rs, int pos) throws SQLException
{
Clob clob = rs.getClob(pos);
if( rs.wasNull() ){
return (Clob)null;
}else{
return clob.getSubString(1,clob.length());
}
}

/**
* Retrieves a String from the passed result set as a Clob object.
*/
public static byte[] getClob(ResultSet rs, String column) throws SQLException
{
Clob clob = rs.getClob(column);
if( rs.wasNull() ){
return (Clob)null;
}else{
return clob.getSubString(1,clob.length());
}
}

/**
* Set a String to the passed prepared statement as a Clob or as null.
*/
public static void setClob(PreparedStatement ps, int pos, String clob) throws SQLException
{
if (clob==null)
{
ps.setNull(pos, Types.CLOB);
}
else
{
ps.setClob(pos, new StringReader(clob));
}
}


/**
* Retrieves a boolean value from the passed result set as a Boolean object.
*/
Expand Down

0 comments on commit ef09809

Please sign in to comment.