Java JDBC(druid)的一个小工具类
工具类做 :
连接数据库
归还连接
代码:
package JdU; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; //druid工具类 public class JDBCUtils { private static DataSource ds; static{ try { Properties pro=new Properties(); pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));//继续获取配置文件,相关连接问题在前几期有 ds= DruidDataSourceFactory.createDataSource(pro); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return ds.getConnection(); } public static void close(Statement stmt, Connection conn){ close(null,stmt,conn); // if(stmt!=null){ // try { // stmt.close(); // } catch (SQLException e) { // e.printStackTrace(); // } // } // // if(conn!=null){ // try { // conn.close();//归还连接 // } catch (SQLException e) { // e.printStackTrace(); // } // } } public static void close(ResultSet rs, Statement stmt, Connection conn){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close();//归还连接 } catch (SQLException e) { e.printStackTrace(); } } } public static DataSource getDataSource(){ return ds; } }
使用工具类
做了一个添加的数据库操作
package JdU; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; //使用工具类 public class JDBCUtils2 { public static void main(String[] args) { Connection connection=null; PreparedStatement preparedStatement=null; try { connection = JDBCUtils.getConnection();//这是上面写的工具类,获取连接成功返回的 String sql="insert into admin values(null,?,?,null);"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1,"无误");//1就是第一个问号,以此类推 preparedStatement.setString(2,"1"); int i = preparedStatement.executeUpdate();//这个返回一个上面执行的sql语句影响了多少行数据 System.out.println(i); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtils.close(preparedStatement,connection);//执行完后调用工具类的关闭方法 } } }
嗯