11package dev .mongocamp .driver .mongodb .jdbc .statement
22
33import com .typesafe .scalalogging .LazyLogging
4- import dev .mongocamp .driver .mongodb .{ Converter , GenericObservable }
4+ import dev .mongocamp .driver .mongodb .{Converter , GenericObservable }
55import dev .mongocamp .driver .mongodb .exception .SqlCommandNotSupportedException
6- import dev .mongocamp .driver .mongodb .jdbc .{ MongoJdbcCloseable , MongoJdbcConnection }
6+ import dev .mongocamp .driver .mongodb .jdbc .{MongoJdbcCloseable , MongoJdbcConnection }
77import dev .mongocamp .driver .mongodb .jdbc .resultSet .MongoDbResultSet
88import dev .mongocamp .driver .mongodb .sql .MongoSqlQueryHolder
99import org .joda .time .DateTime
1010
11- import java .io .{ InputStream , Reader }
11+ import java .io .{InputStream , Reader }
1212import java .net .URL
13- import java .{ sql , util }
14- import java .sql .{
15- Blob ,
16- CallableStatement ,
17- Clob ,
18- Connection ,
19- Date ,
20- NClob ,
21- ParameterMetaData ,
22- PreparedStatement ,
23- Ref ,
24- ResultSet ,
25- ResultSetMetaData ,
26- RowId ,
27- SQLWarning ,
28- SQLXML ,
29- Time ,
30- Timestamp
31- }
13+ import java .{sql , util }
14+ import java .sql .{Blob , CallableStatement , Clob , Connection , Date , NClob , ParameterMetaData , PreparedStatement , Ref , ResultSet , ResultSetMetaData , RowId , SQLWarning , SQLXML , Time , Timestamp }
3215import java .util .Calendar
3316import scala .collection .mutable
17+ import scala .util .Try
3418
3519case class MongoPreparedStatement (connection : MongoJdbcConnection ) extends CallableStatement with MongoJdbcCloseable with LazyLogging {
3620
@@ -547,19 +531,19 @@ case class MongoPreparedStatement(connection: MongoJdbcConnection) extends Calla
547531
548532 override def getString (parameterIndex : Int ): String = parameters.get(parameterIndex).orNull
549533
550- override def getBoolean (parameterIndex : Int ): Boolean = parameters.get(parameterIndex).flatMap(_.toBooleanOption ).getOrElse(false )
534+ override def getBoolean (parameterIndex : Int ): Boolean = parameters.get(parameterIndex).flatMap(v => Try {v.toBoolean}.toOption ).getOrElse(false )
551535
552- override def getByte (parameterIndex : Int ): Byte = parameters.get(parameterIndex).flatMap(_.toByteOption ).getOrElse(0 )
536+ override def getByte (parameterIndex : Int ): Byte = parameters.get(parameterIndex).flatMap(v => Try {v.toByte}.toOption ).getOrElse(0 )
553537
554- override def getShort (parameterIndex : Int ): Short = parameters.get(parameterIndex).flatMap(_.toShortOption ).getOrElse(0 )
538+ override def getShort (parameterIndex : Int ): Short = parameters.get(parameterIndex).flatMap(v => Try {v.toShort}.toOption ).getOrElse(0 )
555539
556- override def getInt (parameterIndex : Int ): Int = parameters.get(parameterIndex).flatMap(_.toIntOption ).getOrElse(0 )
540+ override def getInt (parameterIndex : Int ): Int = parameters.get(parameterIndex).flatMap(v => Try {v.toInt}.toOption ).getOrElse(0 )
557541
558- override def getLong (parameterIndex : Int ): Long = parameters.get(parameterIndex).flatMap(_.toLongOption ).getOrElse(0 )
542+ override def getLong (parameterIndex : Int ): Long = parameters.get(parameterIndex).flatMap(v => Try {v.toLong}.toOption ).getOrElse(0 )
559543
560- override def getFloat (parameterIndex : Int ): Float = parameters.get(parameterIndex).flatMap(_.toFloatOption ).getOrElse(0.0 .toFloat)
544+ override def getFloat (parameterIndex : Int ): Float = parameters.get(parameterIndex).flatMap(v => Try {v.toFloat}.toOption ).getOrElse(0.0 .toFloat)
561545
562- override def getDouble (parameterIndex : Int ): Double = parameters.get(parameterIndex).flatMap(_.toDoubleOption ).getOrElse(0.0 )
546+ override def getDouble (parameterIndex : Int ): Double = parameters.get(parameterIndex).flatMap(v => Try {v.toDouble}.toOption ).getOrElse(0.0 )
563547
564548 override def getBigDecimal (parameterIndex : Int , scale : Int ): java.math.BigDecimal = getBigDecimal(parameterIndex)
565549
@@ -573,7 +557,7 @@ case class MongoPreparedStatement(connection: MongoJdbcConnection) extends Calla
573557
574558 override def getObject (parameterIndex : Int ): AnyRef = ???
575559
576- override def getBigDecimal (parameterIndex : Int ): java.math.BigDecimal = parameters.get(parameterIndex).flatMap(_.toDoubleOption ).map(new java.math.BigDecimal (_)).orNull
560+ override def getBigDecimal (parameterIndex : Int ): java.math.BigDecimal = parameters.get(parameterIndex).flatMap(v => Try {v.toDouble}.toOption ).map(new java.math.BigDecimal (_)).orNull
577561
578562 override def getObject (parameterIndex : Int , map : util.Map [String , Class [_]]): AnyRef = ???
579563
0 commit comments