标签: dao

C#SqlDataReader关闭方法

以下哪种方法更适合关闭SqlDataReader:

 SqlDataReader reader = comm.ExecuteReader();

 while (reader.Read())
 {
 }
 reader.Close();
 reader.Dispose();
Run Code Online (Sandbox Code Playgroud)

要么

SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
}
Run Code Online (Sandbox Code Playgroud)

或者还有另一种关闭方法?

c# dao sqlcommand sqldatareader

0
推荐指数
1
解决办法
544
查看次数

为什么在通用DAO接口中使用方法的默认访问?

我在浏览时找到了通用DAO接口的代码:

public interface GenericDAO<T, ID extends Serializable> {

    Class<T> getEntityClass();

    T findById(final ID id);

    List<T> findAll();
    List<T> findByExample(final T exampleInstance);

    List<T> findByNamedQuery(
        final String queryName,
        Object... params
    );

    List<T> findByNamedQueryAndNamedParams(
        final String queryName,
        final Map<String, ?extends Object> params
    );

    int countAll();

    int countByExample(final T exampleInstance);

    T save(final T entity);

    boolean delete(final T entity);
}
Run Code Online (Sandbox Code Playgroud)

是否有任何理由特别留下具有默认访问修饰符的方法(类/包:是,子类/世界:否)?

PS:一个补充问题.ID通常是在不依赖于RDBMS(XML,平面文件......)的实现中找到的吗?

java dao default access-modifiers generic-interface

0
推荐指数
1
解决办法
390
查看次数

DAO模式多线程

我从事多线程Java应用程序,它是一个提供REST服务的Web服务器,每秒大约1000个请求.我有一个关系数据库,我使用hibernate来访问它.该数据库每秒约有300-400个请求.从多线程的角度来看,我想知道DAO模式是否正确.

所以,有一个BaseModel类看起来像这样:

公共类BaseModelDAO {

protected Session session;


protected final void commit() {
    session.getTransaction().commit();
}


protected final void openSession() {
    session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
}
Run Code Online (Sandbox Code Playgroud)

}

然后我为数据库中的每个表都有一个DAO类:

公共类ClientDAOHibernate扩展BaseModelDAO实现ClientDAO {

private Logger log = Logger.getLogger(this.getClass());

@Override
public synchronized void addClient(Client client) throws Exception {
    try {
        openSession();
        session.save(client);
        commit();
        log.debug("client successfully added into database");
    } catch (Exception e) {
        log.error("error adding new client into database");
        throw new Exception("couldn't add client into database");
    } finally {
        session.close();
    }
}

@Override
public synchronized Client …
Run Code Online (Sandbox Code Playgroud)

java multithreading dao design-patterns

0
推荐指数
1
解决办法
2834
查看次数

ORMLite中的更新与刷新

Dao<T,ID> Interface提供了许多DAO方法,例如update,create,...等

了Update方法

不会保存对外来对象或外部集合所做的更改.

刷新方法是否保存对外来对象或外部集合所做的更改?

一般来说,updaterefresh方法之间的主要区别是什么?

dao crud updates ormlite

0
推荐指数
1
解决办法
4233
查看次数

在实现MVC时,应用程序的哪一部分应该调用DAO中的方法?

我今天参加了考试,其中一个问题如下:

在实现MVC时,从哪个Web应用程序(控制器或视图)的园区我们应该调用在DAO实现中定义的方法?你应该解释一下.


我知道控制器负责将即将发出的http请求重定向到适当的视图,并且视图(JSP文件)应该使用DAO函数来获取信息并显示它.

我的讲师说我错了,控制员会对此作出回应.

当我问为什么时,他说"我应该听讲座".那么,为什么DAO应该从控制器调用而不是从视图中调用?

java jsp dao hibernate spring-mvc

0
推荐指数
1
解决办法
120
查看次数

删除未保存的对象不会调用异常

我正在为我的Dao Spring应用程序编写测试.我发现当我删除未保存的项目时,没有像我期望的那样调用异常,我不知道为什么.

模型:

@Entity
public class Ingredient {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String condition;
    private int quantity;

    public Ingredient() {

    }
}
Run Code Online (Sandbox Code Playgroud)

Dao实施:

@Override
public void delete(Object o) throws DaoException {
    try {
        Session session = mSessionFactory.openSession();
        session.beginTransaction();
        session.delete(o);
        session.getTransaction().commit();
        session.close();
    } catch (Exception ex) {
        throw new DaoException(ex, String.format("Problem deleting %s object (delete method).", o));
    }
}
Run Code Online (Sandbox Code Playgroud)

我的测试,期待DaoException:

@Test
public void testDeleteNotSavedThrowsDaoException() throws Exception {
    Ingredient …
Run Code Online (Sandbox Code Playgroud)

java spring dao hibernate

0
推荐指数
1
解决办法
539
查看次数

什么会导致使用 Android Studio 的 RoomDatabase 文件中不允许使用修饰符“抽象”?

我正在学习使用 Android Studio,并且通常按照在线教程开发一个简单的应用程序,该应用程序使用 Room 等架构进行数据库访问和管理。我已经编写了 Entity 和 Dao 文件,但是在数据库文件中,对 Dao 文件的引用给出了警告“此处不允许使用修饰符‘抽象’”。我不确定这是否会随着项目的发展而在以后“修复”,但教程中没有提到类似的东西。

我尝试删除和重新生成文件,重新同步和交叉检查行与可比较的工作代码。谷歌搜索没有产生真正可比较的比较条件。

package org.ivanhoegc.ivanhoegolfscoringapp;

import android.content.Context;

import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;

@Database(entities = {Scoring.class}, version = 1)
public abstract class ScoringDatabase extends RoomDatabase {

    private static ScoringDatabase instance;

    public abstract ScoringDao scoringDao;

    public static synchronized ScoringDatabase getInstance(Context context){
        if(instance == null){
            instance = Room.databaseBuilder(context.getApplicationContext(),
            ScoringDatabase.class, "scoring_database")
            .fallbackToDestructiveMigration()
            .build();
        }
        return instance;
    }


}
Run Code Online (Sandbox Code Playgroud)

代码是整个数据库定义文件,有问题的代码行是一个'public abstract ScoringDao etc

database android dao syntax-error abstract

0
推荐指数
1
解决办法
1559
查看次数

Android Room 数据库 - 查询验证成功或失败

我们在android中使用Room数据库来存储数据。

现在,在 Dao 类中,我们都执行各种查询,如插入、选择、删除、更新等。

我想知道我们如何知道这些查询执行成功?

即如果我这样做:

appDatabase.userDao().insert(userData)
Run Code Online (Sandbox Code Playgroud)

如何通知用户数据已插入特定表并且操作成功?

是的,有没有可用的工具或插件可以让我们看到 Room 数据库的数据?(我已经用谷歌搜索过它,但对于设备监视器有点困惑)

请指导。

sqlite android dao android-sqlite android-room

-1
推荐指数
1
解决办法
1864
查看次数