Java requiere comentarios.

Las notas son muy detalladas. Si no entiendes nada, déjame un mensaje.

Además, me gustaría dar algunas sugerencias al cartel para sentar unas bases sólidas. Este conjunto de código es confuso y está mal escrito. No apto para estudiar. Si desea aprender, busque un buen código; de lo contrario, será engañado fácilmente.

/**

* Una clase en la capa Dao usa hibernación para controlar la capa de persistencia.

*Hereda de AbstractDAO e implementa los métodos relevantes de la clase abstracta.

*Incluye principalmente obtener una lista de libros, obtener registros de libros, agregar información de libros, agregar y actualizar información de libros,

*Obtener información de libros y determinar si la información de libros se puede eliminar.

*/

La clase pública BookDAO extiende AbstractDAO {

//Método de construcción sin parámetros

Public BookDAO(){

}

/* *La administración en realidad agregó un método principal. Lo siento, soy estúpido. No se me ocurre ninguna otra explicación además de agregar confusión.

*También es posible que se haya utilizado para pruebas durante la fase de prueba y luego se haya olvidado y se haya eliminado.

*/

Public static void main(String[] args) {

// TODO fragmento de método generado automáticamente

}

/**

* Obtenga información de libros basada en palabras clave y utilice consultas difusas para obtener una lista de información de libros que contenga palabras clave.

*Si el atributo bookName del objeto libro ingresado es control o una cadena vacía, toda la información del libro se consultará de forma predeterminada.

*@pamar book El objeto persistente de información del libro debe corresponder a una tabla bookinfo en la base de datos.

*@pamar buscapersonas debe ser un objeto que encapsule la lógica de paginación.

*@return Lista La base de datos devuelta contiene una lista de información del libro, que contiene las palabras clave (títulos de los libros) del libro.

*De forma predeterminada, se devuelve información sobre todos los libros de la base de datos.

*El valor de retorno aquí está diseñado como una lista

**/

La lista pública getBookList(libro Bookinfo, buscapersonas) arroja DataAccessException{

//La declaración hql devuelve toda la información del libro en la base de datos de forma predeterminada.

string hql = " from com . jframe . biz . book . book info book "+

"donde 1 = 1";

/*If book El nombre existe y no es una cadena vacía.

*Reconstruya la declaración hql, agregue restricciones y devuelva un conjunto de resultados de consulta difusa de nombres de libros.

*/

if(book.getBookName()!= null & amp& amp!"".equals(libro . get bookname()){

hql += "and book.bookname like"%"+book.get bookname()+"%"";

}

//Si el autor del libro no está vacío, el carácter Si la cadena no está vacía, agregue restricciones y devuelva el conjunto de resultados de la consulta difusa del autor especificado

if(book.getAuthor()!= null & amp& amp!"".equals(book. . get autor() )){

hql += "y libro . autor como "%" + libro . get autor() + "%";

}

/ /Crea un objeto de consulta para ejecutar la declaración hql

Query query = this.getSession().

create query(hql);

//Los dos registros siguientes están configurados para buscar el primer registro a partir del primer registro en la base de datos para paginación.

//Establezca el tamaño del conjunto de resultados en el número de registros mostrados por página establecido por la lógica de paginación.

query . setmaxresults(pager . get pagesize());

//Comprueba el registro inicial a partir de la lógica en la paginación.

query . set first result((pager . getcurrentpage()-1)* pager . get pagesize());

//Devuelve el resultado de la consulta.

Devolver consulta .list();

}

/**

*Consulta el número de registros de libros que cumplen con los requisitos. condiciones especificadas.

*@pamar reservar un objeto de información de libro

* @return int book record

*/

public int getBookCount(información del libro book) lanza DataAccessException{

//Establece la consulta hql predeterminada para todos los registros del libro.

string hql = " select count(bookName)from com . jframe . biz . book . book info book "+

"donde 1 = 1"

// Si el nombre del libro no está vacío y la cadena no está vacía, agregue una consulta difusa restringida del nombre del libro.

if(book.getBookName()!= null & amp& amp!"".equals(book . get bookname()){

hql += "y libro . bookname like "%"+book.get bookname()+"%"";

}

//Si el autor del libro no está vacío y la cadena no está vacía, agregue un límite Condición: consulta difusa para el autor del libro

if(book.getAuthor()!= null & amp& amp!"".equals(book . get Author()){

hql + = "y libro . autor como "%" + libro . get autor() + "%";

}

Consulta consulta = this.getSession().create consulta (hql );

//Devuelve el conjunto de resultados de la consulta a la lista.

list list = query.

//Si el conjunto de resultados es un objeto. . No está vacío y tiene un resultado.

If (list!= null & amp& amplist. size()> 0)

//Convierte el primer elemento en el conjunto de resultados. como un número entero, luego regresa

return((integer)query.list().iterator().next());

Otro

p>//Ningún registro devuelve 0;

Devuelve 0;

}

/**

*Agregar información de libros

*@parma libro objeto de información del libro

*@returnEs difícil entender por qué este método devuelve un valor, incluso si el valor de retorno es requerido, es booleano.

*/

información del libro público addBookInfo(libro de información del libro) lanza DataAccessException{

//Crear un objeto de plantilla de hibernación

hibernación plantilla plantilla = this . gethibernate template();

//Llame al método de guardar plantilla para guardar la información del libro.

template.save(book);

//Limpiar el caché o los datos sucios y comprobar si los objetos persistentes en la memoria se han almacenado en la base de datos.

template . flush();

template .evict(book);

//El valor de retorno no se interpretará en el futuro. El encabezado del método tiene una explicación de los parámetros y el valor de retorno.

Devolver getBookInfo(book);

}

/**

*Guardar o actualizar método. Tenga en cuenta que si este método se parece a Hibernate 3.0 o superior, se eliminó en versiones anteriores de Hibernate.

*@parma libro objeto de información del libro

*@return¿Por qué este y el último método todavía tienen valores de retorno, incluso si el valor de retorno es requerido, es booleano?

*/

información del libro público guardar información del libro (libro de información del libro) lanza DataAccessException{

//El mismo método no se explicará más adelante.

plantilla de hibernación plantilla = this . gethibernate template();

//Si no existe en la base de datos, inserte la actualización.

plantilla . saveourupdate(libro);

Devolver el libro

}

/**

* Eliminar el libro especificado.

* @Palma libro información del libro

* @return void

*/

public void deleteBookInfo(libro de información del libro) lanza DataAccessException {

plantilla de hibernación plantilla = this . gethibernate template();

//Llame al método de eliminación de la plantilla.

template.delete(book);

}

/**

*Consultar información del libro según el ISBN

*@param libro objeto de libro

* @Devolver información del libro

*/

información del libro público getbook info(libro de información del libro) lanza DataAccessException{

plantilla de hibernación plantilla = this . gethibernate template();

// La declaración SQL consulta la información del libro del ISBN especificado.

string hql = " from com . jframe . biz . book . book info book "+

"donde 1=1 y book . book no = ' "+getbook no. ()+" ' ";

//Clase de consulta para llamar a la plantilla de consulta

list list = template.find(hql);

//Will El primer valor del conjunto de resultados de la consulta se convierte en un objeto y se devuelve.

if (lista!= nulo &&list. tamaño()>0)

return (Bookinfo) list.iterator(). next();

Otro

return null

}

/**

*r si inicia sesión Devuelve verdadero si el número de libro registrado en la información se puede eliminar y existe en la base de datos.

*/

booleano público es candelete(libro de información del libro){

Indicador booleano = falso

plantilla de hibernación = esto; .gethibernate template();

string hql = " from com . jframe . biz . log . log info log "+

"donde 1=1 y log . book info . bookno = ' "+libro . getbookno()+" ' ";

lista lista = plantilla . find(hql);

if (lista! = null & amp& amplist . tamaño( )> 0)

bandera = false

Otro

bandera = true

Devolver bandera;

}

}