Dúvidas sobre interface e interface+hibernate?

1 - Pq as classes interfaces são muito usadas para classes que acessam banco?

2 - Estou fazendo TCC com HIBERNATE, seria bom colocar interface ou seria desnecessário?

Interface, no meu ponto de vista, é imprescindível. Favorece a dinâmica dos teus aplicativos e ajuda a ter um maior controle das ações, sem contar que seus códigos ficam mais bem elaborados e mais “clean”. Exemplo disto é a criação de um dao que recebe as operações básicas de um aplicativo(CRUD), com elas você simplesmente irá passar o parâmetro para a classe que implementa a sua interface e dali em diante ela irá se encarregar do resto da forma como você programou. Assim não vai precisar ficar enchendo suas classes de códigos desnecessários.
no TCC normalmente você implementa um sistema a ser apresentado, quanto mais estruturado melhor.

Coloque interfaces onde interfaces fazem sentido. Esse velho conceito de q vc deve colocar interfaces em tudo pq isso reduz o acoplamento já não cola mais. Ao invés de proteger a implementação das suas classes com mais uma camada de código procure projetar bem as suas classes e aplique interfaces onde elas são realmente necessárias como quando implementando um padrão strategy por exemplo.