@Override
	public boolean save(News news) throws DaoException 
	{
		if (null == news)
		{
			return false;
		}
		PooledConnection connection = null;
		PreparedStatement pStatement = null;
		try 
		{
			connection = (PooledConnection) cp.takeConnection();
			pStatement = connection.prepareStatement(NewsDaoStatement.createNews.getStatement(), new String[] {NewsFields.ID.getContent()});
			pStatement.setString(1, news.getTitle());
			pStatement.setString(2, news.getBrief());
			pStatement.setString(3, news.getContent());
			pStatement.setDate(4, news.getDate());
			int result = pStatement.executeUpdate();
			if (result > 0) 
			{
				ResultSet rs = pStatement.getGeneratedKeys();
				if (rs.next()) 
				{
					news.setId(rs.getInt(1));
					return true;
				} 
				else 
				{
					throw new DaoException("Id was not generated");
				}
			}
			else 
			{
				return false;
			}
		} 
		catch (NoConnectionException | ConnectionSQLException e) 
		{
			log.error("Can't take connection from ConnectionPool", e);
			throw new DaoException("Can't take connection from ConnectionPool", e);
		} 
		catch (SQLException e) 
		{
			log.error("Error in SQL statement " + NewsDaoStatement.createNews.getStatement(), e);
			throw new DaoException("Error in SQL statement " + NewsDaoStatement.createNews.getStatement(), e);
		}
		finally
		{
			if (null != connection)
			{
				try 
				{
					this.closeStatement(pStatement);
					cp.releaseConnection(connection);
				} 
				catch (ConnectionSQLException e) 
				{
					log.error("Can't release connection back", e);
					throw new DaoException("Can't release connection back", e);
				}
			}
		}
	}