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("失败");
}
其他增、删、改等数据库操作也是类似