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
}
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ública
Conexión de conexión;
Tabla ITable;
DaoImp público(Conexión de conexión, ITable
tabla) {
super();
este .conn = conn;
este.table = tabla;
} p>
@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>
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
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(); p>
}
@Override
public String querySql() {
return "select * from " + getTableName() + " donde " + getTableKey() + "=?" ;
}
}
La clase pública BookService implementa IService {
IDao dao; p>
servicio de libros público(IDao dao) {
super();
this.dao = dao;
} p>
@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
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
if (map.keySet().contains(tableField.getName() ){
// Utilice getName,
devuelva map.get(tableField.getName()).get(bean);
} else { p>
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>
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> p>
String bookName;
public String getBookId() {
return bookId;
}
public void setBookId( String bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName; p>
}
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();
}