Red de conocimientos turísticos - Conocimientos sobre calendario chino - Hola, el profesor me pidió que escribiera un sistema de gestión de bibliotecas en Java y MySQL. Hola, quiero ver el archivo de código. ¿Puedes enviarlo si tienes tiempo?

Hola, el profesor me pidió que escribiera un sistema de gestión de bibliotecas en Java y MySQL. Hola, quiero ver el archivo de código. ¿Puedes enviarlo si tienes tiempo?

Estás sin palabras, copia el código formateado

Interfaz pública IDao {

public int insert(IBean bean) arroja una excepción;

>public int delete(int id) arroja una excepción;

public int update(int id, IBean bean) arroja una excepción;

public List<IBean> query(int id) arroja una excepción ;

}

interfaz pública IBean {

/**

* Contiene nombres de campos de tabla y asignación de campos de bean

*

* @return

*/

Mapa público getFieldsMap();

}

paquete dao.table;

interfaz pública ITable {

/**

* Clave principal

* @return

*// /p>

* Construir el campo

*

* @param isUserFields

* ?Construir con nombre de campo/Construir con ? comodín

* @param isSingle

* ?Es verdadero: formulario como este: ?, ?

* ?falso: Por ejemplo: fiele1=?

* ?

* @return

*/

public String buildFilds(boolean isUserFields, boolean isSingle);

public String insertSql();

public String updateSql()

public String deleteSql (

public String querySql();

}

servicio de paquete

importar java.util.List;

p>

importar bean.IBeanIBean;

interfaz pública IService {

inserción de vacío público (bean IBean);

eliminación de vacío público (int id ) ;

actualización vacía pública (int id, IBean bean);

lista públicaclase pública DaoImp ​​​​implementa IDao {

Conexión de conexión;

Tabla ITable;

DaoImp ​​público(Conexión de conexión, ITable

tabla) {

super();

este .conn = conn;

este.table = tabla;

}

@Override

public int insert(IBean bean) lanza una excepción {

Declaración PreparedStatement = null;

prueba {

Cadena sql = table.insertSql();

declaración = conn.prepareStatement(sql);

for (int i = 0; i < table.getClass().getDeclaredFields ().length; i++) {

statement.setObject(i, TableUtil.getFieldValue(table.getClass().getDeclaredFields()[i],bean));

}

devolución declaración.executeUpdate();

} captura (Excepción e) {

lanzamiento e;

} finalmente {

p>

Dbutil.close(declaración);

Dbutil.close(conn);

}

}

@ Anular

public int eliminar(int id) lanza una excepción {

PreparedStatement prepareStatement = null;

prueba {

preparedStatement = conn. >} catch (SQLException e) {

lanzar e;

} finalmente {

Dbutil.close(preparedStatement);

Dbutil .close(conexión) ;

Dbutil.close(conexión);

Dbutil.close(conexión);

Dbutil.close(conexión)close(conexión) );

}

}

}

@Override

actualización pública int (int id, IBean bean) arroja una excepción {

Declaración PreparedStatement = null;

prueba {

String sql = table.setObject(table.getClass().getDeclaredFields(). longitud, id);

return Statement.executeUpdate();

} catch (Excepción e) {

throw e;

} finalmente {

Dbutil.close(declaración);

Dbutil.close(conn);

}

}

@Override

Lista pública&.lt;IBean> consulta (int id) arroja una excepción {

PreparedStatement prepareStatement = null;

Lista resultado = new ArrayList <>();

prueba {

preparedStatement = conn.preparedStatement(table.deleteSql());

preparedStatement .setObject(0,id);

ResultSet rs = prepareStatement.executeQuery();

mientras (rs.next()) {

Clase clazz = Class.forName(table.getClass().getAnnotation(Bean.class).value());

Clase

Dbutil.close(conn);

}

}

}

}

clase pública abstracta TableImp implementa ITable {

@Override

public String buildFilds(boolean isUserFields, boolean isSingle) {

Field[] campos = getClass().getDeclaredFields() ;

StringBuilder sb = new StringBuilder();

for (Campo de campo: campos) {

// Establecer temporalmente la clave principal, la clave principal debe ser eliminado de la ecuación.

// Aquí se usa GetName, también puedes usar get(this) para obtener el valor

sb.append(isSingle? isUserFields? field.getName(): "?" : campo .getName() + "=?") .append(",");

}

return sb.toString().substring(0, sb.toString( append(" valores( ");

sb.append(buildFilds(false, true));

sb.append()");

return sb.toString();

}

@Override

public String deleteSql() {

return "eliminar formulario " + getTableName() + " donde " + getTableKey() + "= ?" ;

}

@Override

public String updateSql() {

StringBuilder sb = new StringBuilder();

sb.append(" update " + getTableName());

sb.append(" set ");

p>

sb.append(" establecer ");

sb.append(" establecer ")append(" establecer ");

sb.append (buildFilds(true, false));

sb.append(" donde " + getTableKey() + "= ?");

return sb.toString();

}

@Override

public String querySql() {

return "select * from " + getTableName() + " donde " + getTableKey() + "=?" ;

}

}

La clase pública BookService implementa IService {

IDao dao;

servicio de libros público(IDao dao) {

super();

this.dao = dao;

}

@Override

inserción de vacío público (bean IBean) {

prueba {

dao.insert(bean);

} catch (Excepción e) {

e.printStackTrace();

}

}

@Override

eliminación pública de vacío (int id) {

prueba {

dao.printStackTrace();

}

}

}

@Override

Lista pública consulta(int id) {

prueba {<

/p>

return dao.query(id);

} catch (Excepción e) {

e.printStackTrace();

return null ;

}

}

}

clase pública TableUtil {

Objeto estático público getFieldValue(Campo tableField , IBean bean) arroja una excepción {

Map map = bean.getFieldsMap();

if (map.keySet().contains(tableField.getName() ){

// Utilice getName,

devuelva map.get(tableField.getName()).get(bean);

} else {

throw new Exception("Confirmando si la anotación del bean corresponde a la estructura de la tabla. beanClass=" + bean.getClass().getSimpleName() + ", tableField=" + tableField.getName()

);

}

}

}

}

clase pública Dbutil {

cierre de vacío estático público (Declaración declaración declaración) {

if (declaración! = nulo) {

prueba {

declaración.close();

} captura (SQLException e) {

e.printStackTrace();

}

}

}

}

}

}

cierre vacío estático público (conexión de conexión) {

if (conexión! = nulo) {

pruebe {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

p>

}

}

}

}

}

}

public static void fildBean(ResultSet rs, IBean bean) lanza IllegalArgumentException, IllegalAccessException, SQLException{

Map<.String, Field>fieldsMap = bean.getFieldsMap();

for (String nombre del campo: camposMap.keySet()) {

fieldsMap.get(nombre del campo).set( bean, rs.getObject(nombre del campo));

}

}

}

pub

lic clase Libro extiende BaseBean{

@TableField(value="BOOK_ID")

Cadena bookId;

@TableField(value="BOOK_NAME") p>

String bookName;

public String getBookId() {

return bookId;

}

public void setBookId( String bookId) {

this.bookId = bookId;

}

public String getBookName() {

return bookName;

}

public void setBookName(String bookName) {

this.bookName = bookName;

}

}

}

@Bean(value=" BOOK")

clase pública BookTable extiende TableImp{

cadena pública BOOK_ID = "BOOK_ID ";

cadena pública BOOK_NAME = "BOOK_NAME";

@Override

cadena pública getTableName() {

return " T_BOOK" ;

}

@Override

public String getTableKey() {

return BOOK_ID;

}

}

/**

* Implementar mapeo de tabla a bean

*

* @autor 16245

*

*

*

*

public @ interfaz Bean {

Valor de cadena();

}

/**

* Comentarios personalizados

* Implementación de Bean y tabla mapeo de campos

*

* @author 16245

*

*/**

public @interface TableField {

Valor de cadena();

}