Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SalidasAutomaticas
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Billy Larru
SalidasAutomaticas
Commits
af43c1b4
Commit
af43c1b4
authored
Aug 28, 2018
by
Billy Larru
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modificando DAOHelper
parent
f6b7360a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
195 additions
and
192 deletions
+195
-192
SalidasMysqlDAO.java
src/salidasautomaticas/mysqldao/SalidasMysqlDAO.java
+4
-4
DAOHelper.java
src/salidasautomaticas/util/DAOHelper.java
+191
-188
No files found.
src/salidasautomaticas/mysqldao/SalidasMysqlDAO.java
View file @
af43c1b4
...
@@ -14,7 +14,7 @@ import org.apache.logging.log4j.Logger;
...
@@ -14,7 +14,7 @@ import org.apache.logging.log4j.Logger;
import
org.json.JSONArray
;
import
org.json.JSONArray
;
import
org.json.JSONObject
;
import
org.json.JSONObject
;
import
salidasautomaticas.dao.SalidasDAO
;
import
salidasautomaticas.dao.SalidasDAO
;
import
salidasautomaticas.util.
EstandarDAO
;
import
salidasautomaticas.util.
DAOHelper
;
/**
/**
*
*
...
@@ -67,7 +67,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
...
@@ -67,7 +67,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
JSONArray
parametrosQuery
=
new
JSONArray
();
JSONArray
parametrosQuery
=
new
JSONArray
();
parametrosQuery
.
put
(
getFechaHoy
());
parametrosQuery
.
put
(
getFechaHoy
());
jsonArray
=
EstandarDAO
.
getInstance
().
consultar
(
cn
,
query
,
parametrosQuery
);
jsonArray
=
DAOHelper
.
getInstance
().
consultar
(
cn
,
query
,
parametrosQuery
);
return
jsonArray
;
return
jsonArray
;
}
}
...
@@ -155,7 +155,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
...
@@ -155,7 +155,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
JSONArray
parametros
=
new
JSONArray
();
JSONArray
parametros
=
new
JSONArray
();
parametros
.
put
(
horaProgramada
);
parametros
.
put
(
horaProgramada
);
JSONArray
jsonArray
=
EstandarDAO
.
getInstance
().
consultar
(
cn
,
query
,
parametros
);
JSONArray
jsonArray
=
DAOHelper
.
getInstance
().
consultar
(
cn
,
query
,
parametros
);
return
jsonArray
;
return
jsonArray
;
}
}
...
@@ -196,7 +196,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
...
@@ -196,7 +196,7 @@ public class SalidasMysqlDAO implements SalidasDAO {
.
put
(
aleatorioMin
)
.
put
(
aleatorioMin
)
.
put
(
asistencia
.
getString
(
"codasis"
));
.
put
(
asistencia
.
getString
(
"codasis"
));
resultado
=
EstandarDAO
.
getInstance
().
ejecutar
(
cn
,
queryPersonal
,
parametros
);
resultado
=
DAOHelper
.
getInstance
().
ejecutar
(
cn
,
queryPersonal
,
parametros
);
updateCounts
[
i
]
=
resultado
.
getInt
(
"msg"
);
updateCounts
[
i
]
=
resultado
.
getInt
(
"msg"
);
i
++;
i
++;
...
...
src/salidasautomaticas/util/
EstandarDAO
.java
→
src/salidasautomaticas/util/
DAOHelper
.java
View file @
af43c1b4
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
salidasautomaticas
.
util
;
package
salidasautomaticas
.
util
;
import
java.sql.Connection
;
import
java.sql.Connection
;
...
@@ -20,187 +15,195 @@ import org.json.JSONObject;
...
@@ -20,187 +15,195 @@ import org.json.JSONObject;
*
*
* @author sistem19user
* @author sistem19user
*/
*/
public
class
EstandarDAO
{
public
class
DAOHelper
{
private
static
final
Logger
log
=
LogManager
.
getLogger
(
DAOHelper
.
class
);
private
static
final
Logger
log
=
LogManager
.
getLogger
(
EstandarDAO
.
class
);
private
static
DAOHelper
instance
;
private
static
EstandarDAO
instance
;
private
DAOHelper
()
{
}
private
EstandarDAO
()
{
}
public
static
DAOHelper
getInstance
()
{
if
(
instance
==
null
)
{
public
static
EstandarDAO
getInstance
()
{
instance
=
new
DAOHelper
();
if
(
instance
==
null
)
{
}
instance
=
new
EstandarDAO
();
return
instance
;
}
}
return
instance
;
}
/**
* Este metodo ejecuta una sentencia sql de consulta(solamente selects) en la
public
JSONObject
listar
(
Connection
cn
,
String
query
,
JSONArray
...
parametros
)
throws
Exception
{
* base de datos y devuelve como resultado en un JSONArray los registros
JSONObject
obj
=
new
JSONObject
();
* obtenidos.
JSONArray
jsonArray
=
consultar
(
cn
,
query
,
parametros
);
*
* Ejemplo de uso con parametros:
int
length
=
jsonArray
.
length
();
*
* Connection cn = (aqui obtengo la conexion)
obj
.
put
(
"data"
,
jsonArray
);
* String query = "select * from personal where codpersonal = ? and fecha_ingreso = ? and retirado = ?";
obj
.
put
(
"recordsFiltered"
,
length
);
* JSONArray parametros = new JSONArray();
obj
.
put
(
"recordsTotal"
,
length
);
* parametros
obj
.
put
(
"draw"
,
"1"
);
* .put(939) //codpersonal es entero
* .put("2018-01-12") //fecha de ingreso es un String
return
obj
;
* .put(true); // retirado es un booleano
}
*
* JSONArray resultado = DAOHelper.getInstance().consultar(cn, query, parametros);
/**
*
* Este metodo ejecuta una sentencia sql de consulta(solamente selects) en
*
* la base de datos y devuelve como resultado en un JSONArray los registros
* Ejemplo de uso sin parametros
* obtenidos
* String query = "select * from personal";
*
* JSONArray resultado = DAOHelper.getInstance().consultar(cn, query,);
*
*
* @param cn objeto que representa la conexion a la base de datos
* @param cn objeto que representa la conexion a la base de datos
* @param query sentencia sql que se desea ejecutar en la base de datos
* @param query sentencia sql que se desea ejecutar en la base de datos
* @param parametros parametros que vamos a pasar al query, *es opcional
* @param parametros parametros que vamos a pasar al query, *es opcional
* @return Devuelve como resultado los registros obtenidos por el query en
* @return Devuelve como resultado los registros obtenidos por el query en un
* un objeto JSONArray
* objeto JSONArray
* @throws Exception
* @throws Exception
*/
*/
public
JSONArray
consultar
(
Connection
cn
,
String
query
,
JSONArray
...
parametros
)
throws
Exception
{
public
JSONArray
consultar
(
Connection
cn
,
String
query
,
JSONArray
...
parametros
)
throws
Exception
{
//objeto que almacena todos las filas obtenidas por el query
//objeto que almacena todos las filas obtenidas por el query
JSONArray
jsonArray
=
new
JSONArray
();
JSONArray
jsonArray
=
new
JSONArray
();
try
{
PreparedStatement
ps
=
null
;
if
(
cn
==
null
)
{
ResultSet
rs
=
null
;
jsonArray
=
null
;
try
{
}
else
{
ps
=
cn
.
prepareStatement
(
query
);
PreparedStatement
ps
=
cn
.
prepareStatement
(
query
);
//validamos si existen parametros
//validamos si existen parametros
if
(
parametros
!=
null
&&
parametros
.
length
>
0
)
{
if
(
parametros
!=
null
&&
parametros
.
length
>
0
)
{
JSONArray
params
=
parametros
[
0
];
JSONArray
params
=
parametros
[
0
];
int
index
=
1
;
int
cont
=
1
;
//Recorremos la lista de parametros y lo seteamos en el preparedstatement
//Recorremos la lista de parametros y lo seteamos en el preparedstatement
for
(
Object
parametro
:
params
)
{
for
(
Object
parametro
:
params
)
{
setPreparedStatement
(
ps
,
index
++,
parametro
);
setPreparedStatement
(
ps
,
cont
,
parametro
);
}
cont
++;
}
}
}
log
.
trace
(
"query [SELECT] ="
+
ps
);
log
.
trace
(
"query [SELECT] ="
+
ps
);
rs
=
ps
.
executeQuery
();
ResultSet
rs
=
ps
.
executeQuery
();
ResultSetMetaData
rm
=
rs
.
getMetaData
();
ResultSetMetaData
rm
=
rs
.
getMetaData
();
int
numCols
=
rm
.
getColumnCount
();
int
numCols
=
rm
.
getColumnCount
();
while
(
rs
.
next
())
{
while
(
rs
.
next
())
{
JSONObject
obj
=
new
JSONObject
();
JSONObject
obj
=
new
JSONObject
();
for
(
int
i
=
1
;
i
<=
numCols
;
i
++)
{
for
(
int
i
=
1
;
i
<=
numCols
;
i
++)
{
setJSONObject
(
rs
,
rm
,
i
,
obj
);
castColumn
(
rs
,
rm
,
i
,
obj
);
}
}
jsonArray
.
put
(
obj
);
jsonArray
.
put
(
obj
);
}
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"error"
,
ex
);
// rs.close();
throw
ex
;
// cn.close();
}
}
return
jsonArray
;
}
catch
(
Exception
ex
)
{
}
log
.
error
(
"error"
,
ex
);
throw
ex
;
/**
}
* Este metodo nos permite ejecutar una sentencia sql en la base de datos y
return
jsonArray
;
* devuelve como resultado en un JSONObject las filas afectadas por el query.
}
*
* Ejemplo de uso con parametros:
/**
*
* Este metodo nos permite ejecutar una sentencia sql en la base de datos y
* Connection cn = (aqui obtengo la conexion)
* devuelve como resultado en un JSONObject las filas afectadas por el
* String query = "update personal set fecha_ingreso = ? and retirado = ? where codpersonal = ?";
* query.
* JSONArray parametros = new JSONArray();
*
* parametros
* @param cn objeto que representa la conexion a la base de datos
* .put("2018-01-12") //fecha de ingreso es un String
* @param query sentencia sql que se desea ejecutar en la base de datos
* .put(true) //retirado es un boolean
* @param parametros parametros que vamos a pasar al query, *es opcional
* .put(923); // codpersonal es un entero
* @return Devuelve la cantidad de filas afectadas por el query en un
*
* JSONObject.
* JSONObject resultado = DAOHelper.getInstance().ejecutar(cn, query, parametros);
* @throws Exception
*
*/
*
public
JSONObject
ejecutar
(
Connection
cn
,
String
query
,
JSONArray
...
parametros
)
throws
Exception
{
* Ejemplo de uso sin parametros
JSONObject
obj
=
new
JSONObject
();
* String query = "delete from personal";
try
{
* JSONObject resultado = DAOHelper.getInstance().ejecutar(cn, query);
if
(
cn
==
null
)
{
*
obj
.
put
(
"msg"
,
0
);
* @param cn objeto que representa la conexion a la base de datos
}
else
{
* @param query sentencia sql que se desea ejecutar en la base de datos
PreparedStatement
ps
=
cn
.
prepareStatement
(
query
);
* @param parametros parametros que vamos a pasar al query, *es opcional
if
(
parametros
!=
null
&&
parametros
.
length
>
0
)
{
* @return Devuelve la cantidad de filas afectadas por el query en un
JSONArray
params
=
parametros
[
0
];
* JSONObject.
int
cont
=
1
;
* @throws Exception
for
(
Object
parametro
:
params
)
{
*/
setPreparedStatement
(
ps
,
cont
,
parametro
);
public
JSONObject
ejecutar
(
Connection
cn
,
String
query
,
JSONArray
...
parametros
)
throws
Exception
{
cont
++;
JSONObject
obj
=
new
JSONObject
();
}
try
{
}
PreparedStatement
ps
=
cn
.
prepareStatement
(
query
);
log
.
trace
(
"query [ExecuteUpdate]= "
+
ps
);
if
(
parametros
!=
null
&&
parametros
.
length
>
0
)
{
int
filas
=
ps
.
executeUpdate
();
JSONArray
params
=
parametros
[
0
];
if
(
filas
>
0
)
{
int
index
=
1
;
obj
.
put
(
"msg"
,
filas
);
for
(
Object
parametro
:
params
)
{
}
else
{
setPreparedStatement
(
ps
,
index
++,
parametro
);
obj
.
put
(
"msg"
,
0
);
}
}
}
}
}
catch
(
Exception
ex
)
{
log
.
trace
(
"query [ExecuteUpdate]= "
+
ps
);
log
.
error
(
"error"
,
ex
);
int
filas
=
ps
.
executeUpdate
();
throw
ex
;
obj
.
put
(
"msg"
,
filas
);
}
}
catch
(
Exception
ex
)
{
return
obj
;
log
.
error
(
"error"
,
ex
);
}
throw
ex
;
}
/**
return
obj
;
* Setea en el prepared statement el valor del parametro segun su tipo de
}
* dato.
*
/**
* @param ps representa el objeto PreparedStatement
* Setea en el prepared statement el valor del parametro segun su tipo de
* @param index indica la posicion del parametro en la consulta sql
* dato.
* @param p parametro de la consulta sql
*
* @throws SQLException
* @param ps representa el objeto PreparedStatement
*/
* @param index indica la posicion del parametro en la consulta sql
private
void
setPreparedStatement
(
PreparedStatement
ps
,
int
index
,
Object
p
)
throws
SQLException
{
* @param p parametro de la consulta sql
if
(
p
instanceof
Integer
)
{
* @throws SQLException
ps
.
setInt
(
index
,
(
int
)
p
);
*/
}
else
if
(
p
instanceof
String
)
{
private
void
setPreparedStatement
(
PreparedStatement
ps
,
int
index
,
Object
p
)
throws
SQLException
{
ps
.
setString
(
index
,
p
.
toString
());
if
(
p
instanceof
Integer
)
{
}
else
if
(
p
instanceof
Double
)
{
ps
.
setInt
(
index
,
(
int
)
p
);
ps
.
setDouble
(
index
,
(
double
)
p
);
}
else
if
(
p
instanceof
String
)
{
}
else
if
(
p
instanceof
Boolean
)
{
ps
.
setString
(
index
,
p
.
toString
());
ps
.
setBoolean
(
index
,
(
boolean
)
p
);
}
else
if
(
p
instanceof
Double
)
{
}
ps
.
setDouble
(
index
,
(
double
)
p
);
}
}
else
if
(
p
instanceof
Boolean
)
{
ps
.
setBoolean
(
index
,
(
boolean
)
p
);
/**
}
else
if
(
p
instanceof
byte
[])
{
* Obtiene el valor de una columna de una tabla y lo guarda en el objeto
ps
.
setBytes
(
index
,
(
byte
[])
p
);
* JSONObject con el tipo de dato que le corresponde.
}
*
}
* @param rs Objeto ResultSet para obtener el valor de una columna de una
* tabla
/**
* @param rsmd Objeto ResultSetMetaData nos permite obtener el nombre y tipo
* Obtiene el valor de una columna de una tabla y lo guarda en el objeto
* de columna
* JSONObject con el tipo de dato que le corresponde.
* @param columnIndex Posicion de la columna en la sentencia sql
*
* @param obj Representa a un registro de la base de datos
* @param rs Objeto ResultSet para obtener el valor de una columna de una
* @throws SQLException
* tabla
*/
* @param rsmd Objeto ResultSetMetaData nos permite obtener el nombre y tipo
private
void
castColumn
(
ResultSet
rs
,
ResultSetMetaData
rsmd
,
int
columnIndex
,
JSONObject
obj
)
throws
SQLException
{
* de columna
//obtenemos el tipo de dato de la columna de la tabla
* @param columnIndex Posicion de la columna en la sentencia sql
int
type
=
rsmd
.
getColumnType
(
columnIndex
);
* @param obj Representa a un registro de la base de datos
* @throws SQLException
//evaluamos el tipo
*/
switch
(
type
)
{
private
void
setJSONObject
(
ResultSet
rs
,
ResultSetMetaData
rsmd
,
int
columnIndex
,
JSONObject
obj
)
throws
SQLException
{
case
Types
.
VARCHAR
:
//obtenemos el tipo de dato de la columna de la tabla
case
Types
.
CHAR
:
int
type
=
rsmd
.
getColumnType
(
columnIndex
);
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getString
(
columnIndex
));
break
;
//evaluamos el tipo
case
Types
.
INTEGER
:
switch
(
type
)
{
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getInt
(
columnIndex
));
case
Types
.
VARCHAR
:
break
;
case
Types
.
CHAR
:
case
Types
.
BIT
:
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getString
(
columnIndex
)
==
null
?
JSONObject
.
NULL
:
rs
.
getString
(
columnIndex
));
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getBoolean
(
columnIndex
));
break
;
break
;
case
Types
.
INTEGER
:
default
:
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getInt
(
columnIndex
));
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getString
(
columnIndex
));
break
;
}
case
Types
.
BIT
:
}
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getBoolean
(
columnIndex
));
break
;
case
Types
.
BINARY
:
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getBytes
(
columnIndex
));
break
;
default
:
obj
.
put
(
rsmd
.
getColumnName
(
columnIndex
),
rs
.
getString
(
columnIndex
)
==
null
?
JSONObject
.
NULL
:
rs
.
getString
(
columnIndex
));
}
}
}
}
Billy Larru
@blarru
mentioned in commit
e614664f
Sep 21, 2018
mentioned in commit
e614664f
mentioned in commit e614664f57dc184cf5f1c6560a75645dca1daea8
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment