2023年8月3日发(作者:)

Jdbc模板,实现动态⽣成import ;import ;import tion;import edStatement;import Set;import ist;import ;import ;/** * 规定: * 1.数据表名 “tb_” + “对象名” * 2.数据库字段顺序与对应实体属性顺序⼀致(不是必须的,但是ID必须是第⼀个属性) * 功能:通过反射实现CRUD * 使⽤:继承该类,调⽤对应⽅法,传⼊对象类型 DbUtil.为⾃定义操作数据库⼯具类 * @author Administrator * */public class JdbcTemplate { public final static String TABLE_PREFIX = "tb_"; private String tableName = ""; private Field[] fields; private List getFields(Object obj) { Class c = ss(); // 获得类名 String className = ss().getSimpleName(); // 类名 + 前缀 = 表名 tableName = TABLE_PREFIX + rCase(); // 获得所有的属性 fields = laredFields(); Method[] method = hods(); List list = new ArrayList(); for (int j = 0; j < ; j++) { String m = "get" + fields[j].getName().toUpperCase().charAt(0) + fields[j].getName().substring(1); for (int i = 0; i < ; i++) { if (method[i].getName().endsWith(m)) { // method[i].invoke("", null); try { (method[i].invoke(obj, null)); n("---------" + method[i].invoke(obj, null)); } catch (Exception e) { tackTrace(); return null; } } } } return list; } private String getInsertSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("INSERT INTO "); ("`" + tableName + "`"); ("`" + tableName + "`"); (" ("); for (int i = 0; i < ; i++) { ("`" + fields[i].getName() + "`"); if (i < - 1) { (","); } } (") "); (" VALUES("); for (int i = 0; i < ; i++) { ("?"); if (i < - 1) { (","); } } (") "); return ng(); } private String getUpdateSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("UPDATE "); ("`" + tableName + "` "); (" SET "); for (int i = 1; i < ; i++) { ("`" + fields[i].getName() + "`"); ("=?"); if (i < - 1) { (","); } } (" WHERE "); (fields[0].getName()); ("=?"); return ng(); } private String getSelectSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("SELECT * FROM "); ("`" + tableName + "` "); return ng(); } private String getDeleteSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("DELETE FROM "); ("`" + tableName + "` "); (" WHERE "); (fields[0].getName()); ("=?"); return ng(); } public boolean save(Object obj) throws Exception { // 获取obj的属性的值 List list = getFields(obj); // 获取sql String sql = getInsertSQL(obj); n(sql); // 通过DbUtil//连接数据库 Connection conn = n(); Connection conn = n(); PreparedStatement ps = eStatement(sql); for (int i = 1; i <= (); i++) { ect(i, (i-1)); } boolean flag = eUpdate() > 0 ? true : false; (conn); return flag; } public boolean update(Object obj) throws Exception { // 获取obj的属性的值 List list = getFields(obj); // 获取sql String sql = getUpdateSQL(obj); // 通过DbUtil Connection conn = n(); PreparedStatement ps = eStatement(sql); for (int i = 1; i < (); i++) { ect(i, (i)); } ((), (Integer) (0)); boolean flag = eUpdate() > 0 ? true : false; (conn); return flag; } public List select(Object obj) throws Exception { return select(obj,null,null); } public List select(Object obj,String fieldName,Object fieldValue) throws Exception { // 获取obj的属性的值 List lists = getFields(obj); // 获取sql String sql = getSelectSQL(obj); if(fieldName != null) sql += " WHERE `"+ fieldName +"` =?"; // 通过DbUtil n("SQL:"+sql); Connection conn = n(); PreparedStatement ps = eStatement(sql); if(fieldName != null) ect(1, fieldValue); ResultSet rs = eQuery(); Class c = ss(); Method[] method = hods(); List list = new ArrayList(); while (()) { Object o = tance(); // 获得所有的属性 for (int j = 0; j < ; j++) { String m = "set" + fields[j].getName().toUpperCase().charAt(0) + fields[j].getName().substring(1); for (int i = 0; i < ; i++) { if (method[i].getName().endsWith(m)) { //n("dd"+ect(j)); try{ method[i].invoke(o, ect(j+1)); } catch (Exception e) { tackTrace(); } } } } (o); } (conn); return list; } public boolean delete(Object obj,Integer id) throws Exception { // 获取obj的属性的值 List list = getFields(obj); // 获取sql String sql = getDeleteSQL(obj); // 通过DbUtil Connection conn = n(); PreparedStatement ps = eStatement(sql); (1, id); boolean flag = eUpdate() > 0 ? true : false; (conn); return flag; }}

2023年8月3日发(作者:)

Jdbc模板,实现动态⽣成import ;import ;import tion;import edStatement;import Set;import ist;import ;import ;/** * 规定: * 1.数据表名 “tb_” + “对象名” * 2.数据库字段顺序与对应实体属性顺序⼀致(不是必须的,但是ID必须是第⼀个属性) * 功能:通过反射实现CRUD * 使⽤:继承该类,调⽤对应⽅法,传⼊对象类型 DbUtil.为⾃定义操作数据库⼯具类 * @author Administrator * */public class JdbcTemplate { public final static String TABLE_PREFIX = "tb_"; private String tableName = ""; private Field[] fields; private List getFields(Object obj) { Class c = ss(); // 获得类名 String className = ss().getSimpleName(); // 类名 + 前缀 = 表名 tableName = TABLE_PREFIX + rCase(); // 获得所有的属性 fields = laredFields(); Method[] method = hods(); List list = new ArrayList(); for (int j = 0; j < ; j++) { String m = "get" + fields[j].getName().toUpperCase().charAt(0) + fields[j].getName().substring(1); for (int i = 0; i < ; i++) { if (method[i].getName().endsWith(m)) { // method[i].invoke("", null); try { (method[i].invoke(obj, null)); n("---------" + method[i].invoke(obj, null)); } catch (Exception e) { tackTrace(); return null; } } } } return list; } private String getInsertSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("INSERT INTO "); ("`" + tableName + "`"); ("`" + tableName + "`"); (" ("); for (int i = 0; i < ; i++) { ("`" + fields[i].getName() + "`"); if (i < - 1) { (","); } } (") "); (" VALUES("); for (int i = 0; i < ; i++) { ("?"); if (i < - 1) { (","); } } (") "); return ng(); } private String getUpdateSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("UPDATE "); ("`" + tableName + "` "); (" SET "); for (int i = 1; i < ; i++) { ("`" + fields[i].getName() + "`"); ("=?"); if (i < - 1) { (","); } } (" WHERE "); (fields[0].getName()); ("=?"); return ng(); } private String getSelectSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("SELECT * FROM "); ("`" + tableName + "` "); return ng(); } private String getDeleteSQL(Object obj) { // 拼SQL语句 StringBuffer sql = new StringBuffer(); ("DELETE FROM "); ("`" + tableName + "` "); (" WHERE "); (fields[0].getName()); ("=?"); return ng(); } public boolean save(Object obj) throws Exception { // 获取obj的属性的值 List list = getFields(obj); // 获取sql String sql = getInsertSQL(obj); n(sql); // 通过DbUtil//连接数据库 Connection conn = n(); Connection conn = n(); PreparedStatement ps = eStatement(sql); for (int i = 1; i <= (); i++) { ect(i, (i-1)); } boolean flag = eUpdate() > 0 ? true : false; (conn); return flag; } public boolean update(Object obj) throws Exception { // 获取obj的属性的值 List list = getFields(obj); // 获取sql String sql = getUpdateSQL(obj); // 通过DbUtil Connection conn = n(); PreparedStatement ps = eStatement(sql); for (int i = 1; i < (); i++) { ect(i, (i)); } ((), (Integer) (0)); boolean flag = eUpdate() > 0 ? true : false; (conn); return flag; } public List select(Object obj) throws Exception { return select(obj,null,null); } public List select(Object obj,String fieldName,Object fieldValue) throws Exception { // 获取obj的属性的值 List lists = getFields(obj); // 获取sql String sql = getSelectSQL(obj); if(fieldName != null) sql += " WHERE `"+ fieldName +"` =?"; // 通过DbUtil n("SQL:"+sql); Connection conn = n(); PreparedStatement ps = eStatement(sql); if(fieldName != null) ect(1, fieldValue); ResultSet rs = eQuery(); Class c = ss(); Method[] method = hods(); List list = new ArrayList(); while (()) { Object o = tance(); // 获得所有的属性 for (int j = 0; j < ; j++) { String m = "set" + fields[j].getName().toUpperCase().charAt(0) + fields[j].getName().substring(1); for (int i = 0; i < ; i++) { if (method[i].getName().endsWith(m)) { //n("dd"+ect(j)); try{ method[i].invoke(o, ect(j+1)); } catch (Exception e) { tackTrace(); } } } } (o); } (conn); return list; } public boolean delete(Object obj,Integer id) throws Exception { // 获取obj的属性的值 List list = getFields(obj); // 获取sql String sql = getDeleteSQL(obj); // 通过DbUtil Connection conn = n(); PreparedStatement ps = eStatement(sql); (1, id); boolean flag = eUpdate() > 0 ? true : false; (conn); return flag; }}