For that you first create the Model So in my case Module name is News
app/code/FME/News/Model/News.php
<?php
namespace FME\News\Model;
class News extends \Magento\Framework\Model\AbstractModel implements NewsInterface, \Magento\Framework\DataObject\IdentityInterface
{
const CACHE_TAG = 'id';
const ENABLED = 1;
const DISABLED = 0;
const COMPLETE = 0;
const LEFT = 1;
const RIGHT = 2;
protected function _construct()
{
$this->_init('FME\News\Model\ResourceModel\News');
}
public function getIdentities()
{
return [self::CACHE_TAG . '_' . $this->getId()];
}
}
Then create interface for model
app/code/FME/News/Model/NewsInterface.php
<?php
namespace FME\News\Model;
interface NewsInterface
{
}
then create resource model
app/code/FME/News/Model/ResourceModel/News.php
<?php
namespace FME\News\Model\ResourceModel;
class News extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
protected function _construct()
{
$this->_init('fme_news','id');
}
}
Then create collection
app/code/FME/News/Model/ResourceModel/News/Collection.php
<?php
namespace FME\News\Model\ResourceModel\News;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
protected $_idFieldName = 'id';
protected function _construct()
{
$this->_init('FME\News\Model\News','FME\News\Model\ResourceModel\News');
}
}
Now get the collection
protected $newscollectionFactory;
public function __construct(....
\FME\News\Model\ResourceModel\News\CollectionFactory $newscollectionFactory
....)
{
....
$this->newscollectionFactory = $newscollectionFactory;
.....
}
public function getNews()
{
$newsCollection = $this->newscollectionFactory->create();
return $newsCollection;
}