JDBC BaseDao.java
2012-02-23 12:23
169 查看
package cn.com.cloud.utils; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.servlet.jsp.jstl.sql.Result; import javax.servlet.jsp.jstl.sql.ResultSupport; import org.apache.log4j.Logger; import cn.com.agree.web.tapestry.util.SystemConfigUtil; /** * <DL> * <DT>dao * @author HenryLee * @version 1.0.0 * @date 2011-6-20 下午02:55:59 */ public class BaseDao { // public static void main(String[] args) { // loadProperties(); // } /** * Logger */ static Logger logger = Logger.getLogger(SystemConfigUtil.class); private static String driverName=null; private static String url=null; private static String userName=null; private static String pwd=null; /** * 通过静态块加载驱动 */ static { if (driverName==null || url==null || userName==null || pwd==null) { loadProperties(); } loadDriver(); } /** * 加载配置 */ public static void loadProperties() { logger.error("-----"+BaseDao.class+"正在加载jdbc.properties配置"); Properties properties=new Properties(); //读取jdbc.properties配置文件 InputStream inStream=null; String appclassPath = BaseDao.class.getResource("/").getPath(); appclassPath = appclassPath.replaceAll("%20", " "); logger.debug("-----appclassPath:"+appclassPath); String path=appclassPath+"..\\conf\\jdbc.properties"; logger.debug("-----path:"+path); try { inStream=new FileInputStream(path); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { properties.load(inStream); } catch (IOException e) { e.printStackTrace(); return; } driverName=properties.getProperty("jdbc.driverClassName"); url=properties.getProperty("jdbc.url"); userName=properties.getProperty("jdbc.username"); pwd=properties.getProperty("jdbc.password"); logger.debug("-----"+BaseDao.class.getName()+"已读取jdbc.properties配置为:"+ "\n"+"driverName:"+driverName+ "\n"+"url:"+url+ "\n"+"userName:"+userName+ "\n"+"pwd:"+pwd); } /** * 加载驱动 */ private static void loadDriver() { try { Class.forName(driverName); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取连接 * @return Connection * @throws SQLException */ public static Connection getConn() throws SQLException { return DriverManager.getConnection(url, userName, pwd); } /** * 执行增删改 * @param sql * @param args * @return boolean */ public static boolean executeSql(String sql,Object[] args) { boolean sign=false; Connection conn=null; PreparedStatement state=null; try { conn=getConn(); state=conn.prepareStatement(sql); if(args!=null && args.length>0) { for (int i = 0; i < args.length; i++) { state.setObject(i+1, args[i]); } } int rows=state.executeUpdate(); if(rows>0) sign=true; } catch (SQLException e) { e.printStackTrace(); } finally { closeAll(null, state, conn); } return sign; } /** * 执行查询 * @param sql * @param args * @return javax.servlet.jsp.jstl.sql.Result; */ public static Result executeQuery(String sql,Object[] args) { //JSTL中提供的类,因此要导入JSTL的两个jar包 Result result=null; Connection conn=null; PreparedStatement state=null; ResultSet rs=null; try { conn=getConn(); state=conn.prepareStatement(sql); if(args!=null && args.length>0) { for (int i = 0; i < args.length; i++) { state.setObject(i+1, args[i]); } } rs= state.executeQuery(); result=ResultSupport.toResult(rs); } catch (SQLException e) { e.printStackTrace(); } finally { closeAll(rs, state, conn); } return result; } /** * 关闭资源 * @param rs * @param state * @param conn */ public static void closeAll(ResultSet rs,Statement state,Connection conn) { try { if(rs!=null) rs.close(); if(state!=null) state.close(); if(conn!=null && conn.isClosed()) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
相关文章推荐
- JAVA OOP 第八章JDBC练习+Basedao
- jdbc baseDAO.java
- JAVA JDBC通用BaseDao版0.1
- Java 工具类 - JDBC通用操作基类 BaseDao
- java JDBC通用BaseDao升级版0.2
- java JDBC通用BaseDao升级版0.3
- java jdbc的基本方法conn,PreparedStatement
- java.lang.AbstractMethodError:oracle.jdbc.T4CConnection.createClob()Ljava
- 完整java开发中JDBC连接数据库代码和步骤
- JDBC与JAVA数据库编程
- mysql4.1.10的JDBC驱动(mysql-connector-java-3.1.7-bin.jar)的配置及测试
- java-jdbc操作详细代码分享
- Java中通过jdbc(thin方式)连接Oracle数据库
- 完整java开发中JDBC连接数据库代码和步骤
- Java通过JDBC访问数据库(两种方式)
- java学习之在myclipse中利用jdbc连接数据库
- java.lang.NoClassDefFoundError: com/mysql/jdbc/MySQLConnection
- java开发中JDBC连接数据库代码和步骤
- JAVA连接ORACLE数据库(JDBC)(附源码)
- JAVA数据库编程——JDBC(二):插入时间字段,显示小时分钟秒