在Java中编写DAO(Data Access Object)接口通常遵循以下步骤:
定义接口
使用`interface`关键字定义一个接口,接口中声明了数据访问的方法,如保存、删除、更新和查询等。
public interface UserDao {
User findUserById(int id) throws Exception;
void insertUser(User user) throws Exception;
// 其他数据访问方法
}
实现接口
创建一个实现上述接口的类,通常需要注入`SqlSessionFactory`来创建`SqlSession`对象,并通过`SqlSession`执行数据库操作。
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import cn.ztc.mybatis.po.User;
public class UserDaoImpl implements UserDao {
private SqlSessionFactory sqlSessionFactory;
public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
}
@Override
public User findUserById(int id) throws Exception {
try (SqlSession session = sqlSessionFactory.openSession()) {
return session.selectOne("cn.ztc.mybatis.dao.UserDao.findUserById", id);
}
}
@Override
public void insertUser(User user) throws Exception {
try (SqlSession session = sqlSessionFactory.openSession()) {
session.insert("cn.ztc.mybatis.dao.UserDao.insertUser", user);
}
}
}
配置映射文件
创建MyBatis的映射文件,定义SQL语句和结果映射。
INSERT INTO user (username, birthday, sex, address)
VALUES ({username}, {birthday}, {sex}, {address})
使用DAO接口
在业务逻辑层或其他需要使用数据访问的地方,通过依赖注入或工厂模式获取DAO接口的实现类实例,并调用相应的方法。
public class UserService {
private UserDao userDao;
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public User getUserById(int id) throws Exception {
return userDao.findUserById(id);
}
public void addUser(User user) throws Exception {
userDao.insertUser(user);
}
}
以上步骤展示了如何使用MyBatis框架编写Java中的DAO接口。类似的过程也可以应用于其他持久层框架,如Hibernate。