DAO模式简述
DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 像直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。
注意 在DAO中主要是面向接口编程
DAO的组成
DAO在建立的时候一般分为6个包,每个包实现不同的业务,6个包分别是:
1.controller:控制层,接收前端页面传来的数据,并将数据简单处理,传输给service层
2.service:业务层,接收从controller层传递来的数据,进行复杂的业务逻辑处理
3.dao:数据持久化层,所有业务的增删改查,和数据库进行交互
4.entity:数据传输实体类
5.utils:工具包,整个项目中的公共部分
6.test:测试
其中dao包一般还要再拓展一个impl包来实现接口
实例
public interface UserDao {
//增加 影响的是行数返回int
public int save(User user);
//修改
public int update(User user);
//删除全部
public int deleteAll();
//通过id删除某一个
public int deleteById(int id);
//查询全部用户 :没有参数
//返回的是一条条记录 所以用集合来存储
public List<User> queryAll();
//查询单个用户:通过用户名和密码
public User queryBynameAndPwd(String name,String pwd);
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.kgc.exam.dao.UserDao;
import com.kgc.exam.entity.User;
public class UserDaoImpl implements UserDao{
public int save(User user) {
Connection conn = null;
PreparedStatement pstmt = null;
int count=0;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/college","root" , "123456");
String sql = "insert into user(username,password,age,sex) values(?,?,?,?)";
p