package com.devnn.base; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; /** * Created by devnn on 16/9/28. */ public abstract class BaseDAO<T> { private DBManager dbManager; private String jdbc_url = "jdbc:mysql://127.0.0.1:3306/bcs_test?Unicode=true&characterEncoding=utf8"; private String username = "blog_user"; private String password = "[email protected]"; public BaseDAO() { } public BaseDAO(String jdbc_url, String username, String password) { this.jdbc_url = jdbc_url; this.username = username; this.password = password; } public SQLDataResult<T> executeQuery(SqlDataParser<T> sqlDataParser) throws SQLException { if (dbManager == null) { return new SQLDataResult<>("call prepareStatement(sql) first!"); } List<T> list; SQLDataResult<T> sqlDataResult = new SQLDataResult<>(); ResultSet resultSet = dbManager.executeQuery(); list = sqlDataParser.parse(resultSet); sqlDataResult.setSuccess(true); sqlDataResult.setData(list); dbManager.closeConnection(); return sqlDataResult; } public SQLDataResult<T> executeUpdate() { if (dbManager == null) { return new SQLDataResult<>("call prepareStatement(sql) first!"); } SQLDataResult<T> sqlDataResult = new SQLDataResult<>(); UpdateResult updateResult; try { updateResult = dbManager.executeUpdate(); if (updateResult.getAffectedNum() >= 1) { sqlDataResult.setSuccess(true); sqlDataResult.setDataKey(updateResult.getGeneratedKey()); } sqlDataResult.setUpdateNum(updateResult.getAffectedNum()); } catch (SQLException e) { e.printStackTrace(); sqlDataResult.setSuccess(false); sqlDataResult.setData(null); sqlDataResult.setReason("sql execute or parse error:" + e.getMessage()); } dbManager.closeConnection(); return sqlDataResult; } public synchronized PreparedStatement prepareStatementByQuery(String sql) throws SQLException { if (dbManager == null) { dbManager = new DBManager(); } return dbManager.prepareStatementByQuery(sql, jdbc_url, username, password); } public synchronized PreparedStatement prepareStatementByUpdate(String sql) throws SQLException { if (dbManager == null) { dbManager = new DBManager(); } return dbManager.prepareStatementByUpdate(sql, jdbc_url, username, password); } public SQLDataResult<T> getSqlDataResultForError(String reason) { SQLDataResult<T> sqlDataResult = new SQLDataResult(); sqlDataResult.setSuccess(false); sqlDataResult.setReason(reason); return sqlDataResult; } protected SQLDataResult<T> handleException(Exception e){ e.printStackTrace(); dbManager.closeConnection(); return getSqlDataResultForError("exception message:"+e.getMessage()); } }
我的代码
猜你喜欢
转载自blog.csdn.net/devnn/article/details/54411432
今日推荐
周排行