entity(实体层) 和 dao(数据访问层)

 

entity(实体层)

package cn.jbit.entity;

import java.io.Serializable;
public class BookManage implements Serializable {
	private int id;//id
	private String name;//图书名称
	private String author;//图书作者
	private String time;//购买时间
	private String type;//图书分类
	
	public BookManage() {}//无参构造方法
	public BookManage(int id, String name, String author, String time,
			String type) {//有参构造方法
		this.id = id;
		this.name = name;
		this.author = author;
		this.time = time;
		this.type = type;
	}
	public int getId() {//得到 id 
		return id;
	}
	public void setId(int id) {//设置 id
		this.id = id;
	}
	public String getName() {//得到 图书名称
		return name;
	}
	public void setName(String name) {//设置 图书名称
		this.name = name;
	}
	public String getAuthor() {//得到 图书作者
		return author;
	}
	public void setAuthor(String author) {//设置 图书作者
		this.author = author;
	}
	public String getTime() {//得到 购买时间
		return time;
	}
	public void setTime(String time) {//设置 购买时间
		this.time = time;
	}
	public String getType() {//得到 图书分类
		return type;
	}
	public void setType(String type) {//设置 图书分类
		this.type = type;
	}
}

 

dao(数据访问层)

package cn.jbit.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * 数据库连接与关闭工具类。
 */
public class BaseDao {
	private static String driver ="oracle.jdbc.driver.OracleDriver";// 数据库驱动字符串
	private static String url = "jdbc:oracle:thin:@localhost:1521:oracle11";// 连接URL字符串
	private static String user = "book"; // 数据库用户名
	private static String password = "accp"; // 用户密码
	/**
	 * 获取数据库连接对象。
	 */
	public Connection getConnection() {
		Connection conn = null;// 数据连接对象
		// 获取连接并捕获异常
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			e.printStackTrace();// 异常处理
		}
		return conn;// 返回连接对象
	}
	/**
	 * 关闭数据库连接。
	 * @param conn 数据库连接
	 * @param stmt Statement对象
	 * @param rs 结果集
	 */
	public void closeAll(Connection conn, PreparedStatement pstmt, 
					ResultSet rs) {
		// 若结果集对象不为空,则关闭
		if (rs != null) {
			try {
				rs.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		// 若Statement对象不为空,则关闭
		if (pstmt != null) {
			try {
				pstmt.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		// 若数据库连接对象不为空,则关闭
		if (conn != null) {
			try {
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	/**
	 * 执行更新、删除、插入SQL语句命令
	 * @param sql
	 * @param pars
	 * @return int
	 */
	public int executeUpdate(String sql, Object[] pars) {
		int rowCount =0;
		Connection conn = null;
		PreparedStatement pstmt = null;
		try {
			conn = this.getConnection();
			pstmt = conn.prepareStatement(sql);
			if(pars!=null){
				for(int i=0;i<pars.length;i++){
					pstmt.setObject(i+1, pars[i]);
				}
			}
			rowCount = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			this.closeAll(conn, pstmt, null);
		}
		return rowCount;
	}
}

 

package cn.jbit.dao;

import java.util.List;
import cn.jbit.entity.BookManage;
public interface BookManageDao {
	/**
	 * 查询一条数据
	 * @param id
	 * @return BookManage
	 */
	public BookManage select(int id);
	/**
	 * 查询所有数据
	 * @return List<BookManage>
	 */
	public List<BookManage> list();
	/**
	 * 添加一条数据
	 * @param item
	 * @return int
	 */
	public int Add(BookManage item);
	/**
	 * 删除一条数据
	 * @param id
	 * @return int
	 */
	public int delete(int id);
	/**
	 * 修改一条数据
	 * @param item
	 * @return int
	 */
	public int update(BookManage item);
}

 

package cn.jbit.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cn.jbit.dao.BaseDao;
import cn.jbit.dao.BookManageDao;
import cn.jbit.entity.BookManage;
//BookManageDaoImpl 继承 BaseDao 实现  BookManageDao
public class BookManageDaoImpl extends BaseDao implements BookManageDao {
	Connection conn = null;//数据库连接
	PreparedStatement pstmt = null;//数据库操作
	ResultSet rs = null;//保存查询结果
	//查询一条数据
	public BookManage select(int id) {
		BookManage item = null;//声明 BookManage 对象,用来保存查询的数据
		String sql = "select b_id, b_name, b_author, to_char(b_time,'yyyy-mm-dd'), b_type " +
				"from bookmanage where b_id=?";//编写预处理 SQL
		conn = this.getConnection();//使用父类的数据库连接
		try {
			pstmt =conn.prepareStatement(sql);//实例化 PreparedStatement  
			pstmt.setInt(1, id);//设置 “?”的内容,要使用 id 查询
			rs = pstmt.executeQuery();//实例化 ResultSet 对象  
			if(rs.next()){//指针向下移动  
				item = new BookManage(//把查询到的内容保存到 BookManage 对象中
						rs.getInt(1),
						rs.getString(2),
						rs.getString(3),
						rs.getString(4),
						rs.getString(5)
						);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//使用父类的关闭数据库连接,把所有都关闭
			this.closeAll(conn, pstmt, rs);
		}
		//返回保存的数据的 BookManage 对象
		return item;
	}
	//查询所有数据
	public List<BookManage> list() {
		//使用泛型集合来保存一组数据,约束类型是 BookManage 类型
		List<BookManage> list = new ArrayList<BookManage>();
		BookManage item = null;//声明 BookManage 对象,用来一行行数据
		//此处不需要设置任何内容  
		String sql ="select b_id, b_name, b_author, to_char(b_time,'yyyy-mm-dd'), b_type from bookmanage";
		conn = this.getConnection();//使用父类的数据库连接
		try {
			pstmt =conn.prepareStatement(sql);//实例化 PreparedStatement  
			rs = pstmt.executeQuery();//实例化 ResultSet 对象  
			while(rs.next()){//指针向下移动  
				item = new BookManage(//装进 BookManage 对象中
						rs.getInt(1),
						rs.getString(2),
						rs.getString(3),
						rs.getString(4),
						rs.getString(5)
						);
				list.add(item);//再添加到泛型集合
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//使用父类的关闭数据库连接,把所有都关闭
			this.closeAll(conn, pstmt, rs);
		}
		//返回泛型集合,里面装着所有所有数据
		return list;
	}
	//添加一条数据
	public int Add(BookManage item) {
		//编写预处理 SQL
		String sql = "insert into BookManage (B_ID, B_NAME, B_AUTHOR, B_TIME, B_TYPE)" +
				"values (SEQ_BOOKMANAGE.Nextval,?,?, to_date(?, 'yyyy-mm-dd'), ?)";
		return this.executeUpdate(sql, new Object[]{
				item.getName(),
				item.getAuthor(),
				item.getTime(),
				item.getType()
		});//返回SQL语句和要添加的 Object 对象
	}
	//删除一条数据
	public int delete(int id) {
		//编写预处理 SQL
		String sql = "delete bookmanage where b_id = ?";
		return this.executeUpdate(sql, new Object[]{id});
	}//返回SQL语句根据 id 删除

	//修改一条数据
	public int update(BookManage item) {
		//编写预处理 SQL
		String sql = 
				"update bookmanage" +
						"   set b_name = ?," + 
						"       b_author = ?," + 
						"       b_time =to_date(?,'yyyy-mm-dd')," + 
						"       b_type =?" + 
						" where b_id = ?";
		
		return this.executeUpdate(sql, new Object[]{
				item.getName(),
				item.getAuthor(),
				item.getTime(),
				item.getType(),
				item.getId()
		});//返回SQL语句和要修改的 Object 对象,根据 id 来修改
	}
}

 

 

 

 

 

 

LABVIEW学习之MODBUS-TCP通讯 LABVIEW学习之MODBUS-TCP通讯 1,MODBUS-TCP通讯介绍: MODBUS通讯是工业上面经常用到的一种通讯协议。该协议的原理及介绍不在此累述,下面直接介绍LABVIEW对此协议的应用。 2,MODBUS通讯所需的函数: 安装了DSC模块之后可以在数据通信内找到相关函数 3 ,主VI 主要思路就是使用状态机来进行连接 读取 写入 断开。使用枚举类型来选择状态: 1,连接 2,写入多个M继电器: 3,写入单个M继电器 4,写入双字节D... 阅读详情

相关推荐

Vivado实战:UltraScale/UltraScale+器件eFUSE寄存器配置与安全编程全解析

本文详细解析了Xilinx UltraScale/UltraScale+器件中eFUSE寄存器的配置与安全编程方法。从芯片唯一身份标识到加密密钥烧录,再到用户寄存器的灵活应用安全控制寄存器的配置技巧,全面介绍了如何利用eFUSE功能提升硬件安全性。文章还提供了JTAG接口安全管理NKZ文件备份方案,帮助开发者避免常见陷阱,确保安全编程的可靠性。

weixin_42535703的博客 405

什么是DaoEntity、Service、Servlet、Utils

基础知识整理......

Restarting2019的博客 14万+

基于强化学习的六轴臂自主避障路径规划Matlab代码.rar

1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业毕业设计。

java为什么要分为servicedao,controllerEntity等?

Java中,通常将一个应用程序分为控制(Controller)、服务(Service)、实体Entity数据访问层(DAO)。这种分结构的主要目的在于实现应用程序的模块化解耦,便于团队协作维护。

tigerhhzz的博客 7959

entitydao、mapper、service、controller简单总结 记录

entitydao、service、mapper、util、controller简单总结

前端kk的博客 2195

概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解

java开发过程中,新手总是被DAO、PO、BO、VO等等概念弄得晕头转向。 下面我查找了很多资料,总结如下: POJO(Plain Ordinary Java Object 简单Java对象) 实际就是普通JavaBeans,是为了避免EJB混淆所创造的简称。 POJO的内在含义是指:那些没有继承任何类、也没有实现任何接口,更没有被其它框架侵入的java对象。它包括PO、DTO、VO、BO等。 POJO持久化-》PO POJO传递-》 DTO POJO在表示-》VO PO(persistence o

晓风残月淡的博客 4万+

理解JSP开发中MVC以及biz,dao,entity(pojo)的含义及意义

JSP开发中的分都是基于MVC架构的,即(Model-View-Controller), M:模型,主要是负责一些具体的业务逻辑的实现, V:视图,可以理解为JSP页面, C:控制器,用于接受页面请求与响应请求到JSP页面的控制机制。 在模型中,又分为biz,dao,entity, biz:Bussiness Model,业务模型,主要用于处理某一类业务的处理流程, dao:D...

xiao_xiao_b的博客 2308

SpringBoot从0到实战7:web项目中框架分

1、Service:业务–>控制业务 业务模块的逻辑功能设计,DAO一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service调用接口进行业务逻辑应用的处理。 好处:封装Service的业务逻辑有利于业务逻辑的独立性重复利用性。 2、Controller:控制–>调用业务方法来控制业务逻辑 controller主要调用Service里面的接口来控制具体的业务流程,控制的配置也要在配置文件中进行。 ControllerSer

努力才是唯一的入场券。 4万+

java 业务业务接口_Java web五架构

DAO:1.DAO--[面向表]: 持久数据访问层,主要与数据库进行交互介绍:DAO只是封装增删改查,比较底,比较基础的操作,具体到对于某个表、某个实体的增删改查。至于增删查改如何去实现一个功能,dao是不管的。在接口中对方法进行了定义,在UserDao.xml中给出了sql语句实现.建议:建议DAO只做原子操作,增删改查。Entity:1.Entity(domain):mode...

weixin_34504277的博客 3422

SSH整合()

前言: 基于我们SSH整合()的知识,我们再来进一步深化我们的SSH整合应用。 相关的准备操作我这里就不介绍了,因为我们是基于SSH整合()的基础上实现的,所以我们直接来看看我们的级结构。 如图所示: ...

Kobe Bryant 128

Javaweb开发基本项目结构

学校里老师都没讲这个,所以浅讲一下web项目尽量要照这种格式,方便扩展阅读。比方说api/controller/servlet,dto,dao等的含义

qq_42901723的博客 262

2021-06-17

对于javaweb的一点理解,四个包三架构,分别是entity,service,concroller,dao。mvc持久,视图,业务逻辑

m0_52856738的博客 169

Java面向对象接口的应用作业(项目结构)

第一题:创建一个包名为 com.hr.entity User(实体) private int id; private String name; private String password; private String address; com.hr.dao UserDao(接口) 方法有 int add(User user) int update(User user) int delete(User user) ...

mtm001的专栏 338

简单JavaWeb项目代码结构(EntityDao、Util、Service、Controller)

JavaWeb项目代码结构

stony3的专栏 6507

SpringBoot框架中的DAOEntity、Service、Controller

SpringBoot框架中的DAOEntity、Service、Controller

前端kk的博客 5137

JavaEntityDAO、ServiceController的区别

Entity:存放一些普通javabean,其中有一些属性及其gettersetter方法的类,没有业务逻辑,也不允许有业务方法,也不能携带有connection之类的方法。 DAODAO数据访问层,全称为data access object,属于一种比较底,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是数据库的某一张表一一对应的,其中封装了增删改查基本操作,...

时光、疏离了记忆づ童话的博客 5604

数据库Dao视图Entity---次化开发

DAO ---- 数据库 %E5%86%85%E5%AE%B9%E5%AF%BC%E8%88%AADAO【mapper】DAO类开发规则DAO类实例:StudentDao查询操作的问题?实体类modelEntity,domain】 Javaweb — DAO 116天 DAOmodule 或许感觉有点杂乱,但是也不杂乱,因为昨天分享了一下应用的分,底DAO调用的数据库;而不是直接用Action或者Service来操作数据库;昨天的单表操作是因为这个程序过于简单,所以就没有分

a23452的博客 2008

架构编程、DAOEntity、Service、Controller

本质上所有的项目(应用程序)都是需要用户交互,然后产生数据,对数据进行处理,最后将数据存储到硬盘这么个过程在编程中,可以将这个过程分一下次,最初只分两,用户数据,但是后来人们发现,只分两的话,这两之间的耦合程度比较高,在实际运行过程中会造成不必要的麻烦,所以为了分架构的编程方法实用性更好,抽取出另外一专门负责处理用户提交的数据,对数据进行判断,验,组装等最后将处理好的数据交给数据完成存储,这一被称为业务逻辑到这里。

m0_57954117的博客 4175

spring boot,DAOENTITY、SERVICE、CONTROLLER之间的关系

5、View与Controller控制结合比较紧密,需要二者结合起来协同工作。View主要负责前台jsp页面的表示。另外一种总结1、DAO: 持久 主要与数据库进行交互DAO主要是做数据持久的工作,主要与数据库进行交互。DAO首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理,并且不用关注此接口的具体实现类是哪一个类。DAO 的数据源数据库连接的参数数都是在配置文件中进行配置的。

clear10ve的博客 5260

DaoEntity、Service、Servlet、Utils

DAO(Data Access Object)是应用程序中的一个重要组成部分,它负责处理与数据库的交互,包括数据的获取、存储、更新删除等操作。DAO 的主要目的是将业务逻辑与数据访问逻辑分离,提供了一种将数据存取操作抽象化的方式。在典型的三架构(也称为分架构)中,DAO 通常是数据访问层,位于业务逻辑(Service 数据存储(通常是数据库)之间。它充当了业务逻辑数据库之间的中介,隐藏了底数据库访问的细节,使业务逻辑可以独立于特定的数据存储技术。

weixin_63111096的博客 1058
上一篇: SQL.sql
下一篇: entity(实体层) 和 dao(数据访问层)
chaoyv
博客等级 码龄12年 60粉丝 1042原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值