Skip to content

jumpcoder/javadao

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

javadao

Java的DAO程序

提供了一个名为Dao的抽象类作为其它Dao类的父类。所有的新创建的Dao类必须继承自Dao类。 比如,我们定义一个UserDao类

public class UserDao extends Dao<User>{
    
}

Dao类为其子类提供了4个实例方法setSql()、update()、query()、getResultSet()及一个抽象方法mapToObject()。下面分别介绍这些方法: #####void setSQL(String sql, Object... objects)方法: setSQL()方法用于设定PreparedStatement,所以需要传入一个sql语句以及sql语句中的问号所对应的值。

#####void update()方法: update()方法需要在setSQL()方法调用后调用,用于执行insert、update及delete类型的sql语句。

#####List query()方法: query()方法需要在setSQL()方法调用后调用,用于执行select类型的语句。query()方法将返回由实体类对象组成的列表。

#####ResultSet getResultSet()方法和抽象方法T mapToObject()方法: 继承自Dao的类必须实现mapToObject()方法。mapToObject()方法用于将查询结果中的每一行映射为一个实体类的对象。子类在实现mapToObject方法时可以通过调用getResultSet()得到所需的结果集,mapToObject方法需要将结果集转化为一个实体类的对象,并返回这个对象。

继续以UserDao为例,为其定义一个User findUserById(int id)方法:

public class UserDao extends Dao<User>{
    protected User mapToObject(){
        User user = new User();
        ResultSet rs = getResultSet();
        user.setId(rs.getInt("id"));
        user.setUsername(rs.getString("username"));
        user.setPassword(rs.getString("password"));
        return user;
    }
    public User findUserById(int id){
        setSQL("select id, username, password from user where id = ?", id);
        List<User> userList = query();
        if(userList.size() == 0){
            return null;
        }else if{
            return userList.get(0);
        }else{
            //error
        }
    }   
}

About

Java的DAO程序

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages