«DAO» - это просто общий термин для классов абстракции базы данных. Будь они потокобезопасны или нет, зависит от конкретной реализации.
Этот плохой пример можно назвать DAO, но он вызовет проблемы, если несколько потоков вызовут метод вставки одновременно.
class MyDAO {
private Connection connection = null;
public boolean insertSomething(Something o) throws Exception {
try {
connection = getConnection()
//do insert on connection.
} finally {
if (connection != null) {
connection.close();
}
}
}
}
Таким образом, ответ таков: если ваш DAO правильно обрабатывает соединения и транзакции, он должен работать.