wordpress如何导航网站模板,西安网站建设聂卫,眉山注册公司流程和费用,服务器租用平台目录 DAO模式 含义
DAO模式 的理解
分层思维
分层含义
分层目的
dao层
dao包#xff08;对接的是操作数据库的接口#xff09;
dao包下lmpl 包#xff08;dao包中接口的实现类#xff09;
补充
1 你创建的实体类需要和数据库中建的表一一对应。
总结 DAO模式 含义…目录 DAO模式 含义
DAO模式 的理解
分层思维
分层含义
分层目的
dao层
dao包对接的是操作数据库的接口
dao包下lmpl 包dao包中接口的实现类
补充
1 你创建的实体类需要和数据库中建的表一一对应。
总结 DAO模式 含义 数据访问对象Data Access Object模式是一种设计模式主要用于将业务逻辑与数据访问代码分离以提高代码的模块化、可维护性和可测试性。 DAO模式 的理解 理解DAO模式我认为最为重要的理解分层思维 分层思维
分层含义
将系统分解成多个层次每个层次都有明确的职责和功能并且层次之间通过定义良好的接口进行交互我认为应该把同一功能/同一技术类型的类放在同一包下 例如Java分为经典三层模型 经典的三层架构表现层、业务逻辑层、数据访问层 表现层负责用户界面和用户交互如Web页面、桌面应用界面等。业务逻辑层处理业务规则和业务流程如订单处理、用户认证等。数据访问层负责数据的持久化如数据库操作。以下是一些常见的 web层表现层负责用户界面和用户交互如Web页面、桌面应用界面service层业务逻辑层主要处理业务逻辑代码数据加工条件判断dao层数据访问层封装与数据库操作entity/domain..层 实体类对应的数据库的表的类util :工具类如jdbcUtil 封装 连接的数据库的一些操作 分层目的 1 技术隔离 比如dao层使用的技术jdbc jdbc中的核心的api 类 不能在其他的类出现 2 不能跨层调用 如下图 展示的 dao层 数据访问层封装数据库的操作 dao包对接的是操作数据库的接口dao包下lmpl 包dao包中接口的实现类 dao包对接的是操作数据库的接口 StudentDao 接口实例代码 // 查询public Student showStudent(int id);//查询所有学生public ListStudent showAllStudent();// 删除public boolean delete(int id);// 修改public boolean update(Object...params);// 添加public boolean add(Object...params); UserDao接口实例代码 // 登录int login( String username, String password);// 注册int register(String username, String password);dao包下lmpl 包dao包中接口的实现类 StudentDaoImpl类 实现StudentDao 接口 UserDaoImpl 类 实现UserDao接口 StudentDaoImpl 实例代码 package it.dao.impl;import it.Util.jdbcUtil;
import it.dao.StudentDao;
import it.dao.UserDao;
import it.entity.Student;import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;/*** Author: Administrator* Description:* Date: 2024/11/8 下午4:54* Version: 1.0*/
public class StudentDaoImpl implements StudentDao {Scanner input new java.util.Scanner(System.in);/** 根据id查询学生*/Overridepublic Student showStudent(int id) {String sql select stuId, stuName, stuSex, stuAge from student where stuId?;String stuName null;int stuAge 0;int stuId 0;String stuSex null;try {ResultSet resultSet jdbcUtil.executeQuery(sql, id);if (resultSet.next()) {stuId resultSet.getInt(stuId);stuName resultSet.getString(stuName);stuSex resultSet.getString(stuSex);stuAge resultSet.getInt(stuAge);return new Student(stuName, stuAge, stuSex, stuId);} else {System.out.println(该学生不存在);return null;}} catch (SQLException e) {throw new RuntimeException(e);}}/** 查询所有学生*/Overridepublic ListStudent showAllStudent() {String sql select stuId, stuName, stuSex, stuAge from student;ListStudent list new ArrayList();try {Connection conn jdbcUtil.getConnection();Statement statement conn.createStatement();ResultSet resultSet statement.executeQuery(sql);while (resultSet.next()) {int stuId resultSet.getInt(stuId);String stuName resultSet.getString(stuName);String stuSex resultSet.getString(stuSex);int stuAge resultSet.getInt(stuAge);Student student new Student(stuName, stuAge, stuSex, stuId);list.add(student);}} catch (SQLException e) {throw new RuntimeException(e);}return list;}/*删除学生信息*/Overridepublic boolean delete(int id) {String sql delete from student where stuId?;int i jdbcUtil.executeUpdate(sql, id);if (i 0) {return true;}return false;}Overridepublic boolean update(Object... params) {String sql update student set stuName?,stuAge?,stuSex? where stuId?;int i jdbcUtil.executeUpdate(sql, params);if (i 0) {return true;} else {return false;}}/*
添加学生信息
*/Overridepublic boolean add(Object... params) {String sql insert into student(stuName,stuSex,stuAge) values(?,?,?);int i jdbcUtil.executeUpdate(sql, params);if (i 0) {return true;} else {return false;}}
} UserDaoImpl 类的实例代码 package it.dao.impl;import it.Util.jdbcUtil;
import it.dao.StudentDao;
import it.dao.UserDao;import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;/*** Author: Administrator* Description:* Date: 2024/11/9 下午4:20* Version: 1.0*/
public class UserDaoImpl implements UserDao {/** 登录*/Overridepublic int login( String username, String password) {String sql select username,pwd from user where username? and pwd?;ResultSet resultSet null;try {resultSet jdbcUtil.executeQuery(sql, username, password);if (resultSet.next()) {return 0;} else {return 1;}} catch (SQLException e) {throw new RuntimeException(e);}}
/*注册*/Overridepublic int register(String username, String password) {String sql insert into user(username,pwd) values(?,?);Date date new Date(System.currentTimeMillis());int i jdbcUtil.executeUpdate(sql, username, password);if (i 0) {return 1;} else {return 0;}}
}补充 1 你创建的实体类需要和数据库中建的表一一对应。
如下图所示
数据库的字段类型实体类的属性数据类型char/varchar/text[文本型]Stringint [数值型]IntegerbigintLongdoubleDoubledecimalBigDecimal
注意数据库中 data/time/datetime 字段类型 对应在Java中有两种形式 Java.util.Datejava.sql.Date
但我们推荐使用Java.util.Date
原因
这里 存在向上转型Java.util.Date 是java.sql.Date 的父类 总结
本篇博客简单的介绍了DAO模式。但我认为这是远远不够的在之后的学习中还无法理解其中的精髓。因此在之后的学习中我会及时补充