java DAO class generate help
诚朴java DAO类生成系统,由深圳市诚朴科技有限公司研发,交流QQ群:744820282。
示例使用的数据表(tbl_admin_users)如下:
CREATE TABLE `tbl_admin_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(30) CHARACTER SET latin1 NOT NULL, `user_name_cn` varchar(30) CHARACTER SET utf8 NOT NULL, `password` varchar(50) CHARACTER SET latin1 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
DAO生成时,均使用默认配置,会生成两个文件AdminUsersDao.java、AdminUsersInfo.java
AdminUsersDao
package com.chengput.demo.dao; import com.chengput.frame.RuntimeProvider; import com.chengput.frame.DaoUtils; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.sql.ResultSet; import javax.sql.rowset.CachedRowSet; import org.apache.log4j.Logger; /** * * 本类为代码生成工具生成的。 * 建议不要直接修改。否则下次重新生成时,会导致代码被覆盖到。 * 代码生成工具版本v0.1.0 * 业务版本v1.0 * */ public class AdminUsersDao { private static Logger logger = Logger.getLogger(AdminUsersDao.class); private RuntimeProvider provider; public AdminUsersDao(RuntimeProvider provider) { this.provider = provider; } public int insert(AdminUsersInfo info) { int affect = -1; Connection conn = null; Statement stmt = null; try { conn = provider.getConnection(); stmt = conn.createStatement(); String sql = "insert into tbl_admin_users(`id`,`user_name`,`user_name_cn`,`password`)"; sql += " values(" + info.id + ",'" + DaoUtils.escapeSql(info.user_name) + "','" + DaoUtils.escapeSql(info.user_name_cn) + "','" + DaoUtils.escapeSql(info.password) + "');"; affect = stmt.executeUpdate(sql); } catch (SQLException ex) { logger.error("", ex); } finally { DaoUtils.close(stmt); DaoUtils.close(conn); } return affect; } public long insertFetchId(AdminUsersInfo info) { long id = -1; int affect = -1; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = provider.getConnection(); stmt = conn.createStatement(); String sql = "insert into tbl_admin_users(`id`,`user_name`,`user_name_cn`,`password`)"; sql += " values(" + info.id + ",'" + DaoUtils.escapeSql(info.user_name) + "','" + DaoUtils.escapeSql(info.user_name_cn) + "','" + DaoUtils.escapeSql(info.password) + "');"; affect = stmt.executeUpdate(sql); if(affect > 0) { String sqlStr = "select last_insert_id() as id"; rs = stmt.executeQuery(sqlStr); if (rs.next()) { id = rs.getLong("id"); } } } catch (SQLException ex) { logger.error("", ex); } finally { DaoUtils.close(rs); DaoUtils.close(stmt); DaoUtils.close(conn); } return id; } public int update(AdminUsersInfo info) { int affect = -1; Connection conn = null; Statement stmt = null; try { conn = provider.getConnection(); stmt = conn.createStatement(); String sql = "update tbl_admin_users set `user_name`='" + DaoUtils.escapeSql(info.user_name) + "',`user_name_cn`='" + DaoUtils.escapeSql(info.user_name_cn) + "',`password`='" + DaoUtils.escapeSql(info.password) + "' where `id`=" + info.id + " "; affect = stmt.executeUpdate(sql); } catch (SQLException ex) { logger.error("", ex); } finally { DaoUtils.close(stmt); DaoUtils.close(conn); } return affect; } public int delete(AdminUsersInfo info) { int affect = -1; Connection conn = null; Statement stmt = null; try { conn = provider.getConnection(); stmt = conn.createStatement(); String sql = "delete from tbl_admin_users where `id`=" + info.id + " "; affect = stmt.executeUpdate(sql); } catch (SQLException ex) { logger.error("", ex); } finally { DaoUtils.close(stmt); DaoUtils.close(conn); } return affect; } public AdminUsersInfo queryInfo(AdminUsersInfo info) { AdminUsersInfo ret = null; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = provider.getConnection(); stmt = conn.createStatement(); String sql = "select * from tbl_admin_users where `id`=" + info.id + " "; rs = stmt.executeQuery(sql); if(rs.next()) { ret = wrapper(rs); } } catch (SQLException ex) { logger.error("", ex); } finally { DaoUtils.close(rs); DaoUtils.close(stmt); DaoUtils.close(conn); } return ret; } public static AdminUsersInfo wrapper(ResultSet rs) throws SQLException { AdminUsersInfo info = new AdminUsersInfo(); info.id = rs.getInt("id"); info.user_name = rs.getString("user_name"); info.user_name_cn = rs.getString("user_name_cn"); info.password = rs.getString("password"); return info; } public static AdminUsersInfo wrapper2(CachedRowSet rs) throws SQLException { AdminUsersInfo info = new AdminUsersInfo(); info.id = rs.getInt("id"); info.user_name = rs.getString("user_name"); info.user_name_cn = rs.getString("user_name_cn"); info.password = rs.getString("password"); return info; } }
AdminUsersInfo
package com.chengput.demo.dao; import java.util.Date; /** * * 本类为代码生成工具生成的。 * 建议不要直接修改。否则下次重新生成时,会导致代码被覆盖到。 * 代码生成工具版本v0.1.0 * 业务版本v1.0 * */ public class AdminUsersInfo implements Cloneable { public int id; public String user_name; public String user_name_cn; public String password; public Object clone() throws CloneNotSupportedException{ return super.clone(); } public void set(AdminUsersInfo ref) { this.id = ref.id; this.user_name = ref.user_name; this.user_name_cn = ref.user_name_cn; this.password = ref.password; } }
插入数据代码如下:
AdminUsersDao dao = new AdminUsersDao(new DemoProvider()); AdminUsersInfo info = new AdminUsersInfo(); info.user_name = "chengput"; info.user_name_cn = "诚朴科技"; info.password = "123456"; int affect = dao.insert(info); if(affect > 0) { System.out.println("成功"); } else { System.out.println("失败"); }
其他增、删、改等数据库操作也是类似