JDBC---dao/bo

JDBC: JavaDataBasesConnectivity (数据库连接)
说在前边的那些话-(准备工作):
java与sql是两个独立的个体,他们直接的连接需要媒介,
这个媒介叫dirver驱动:
我们需要先在lib中引入dirver驱动,并为其配置环境变量。
且在程序一编写开始我们就需要编写
dirver驱动地址、数据库用户名、密码、URL地址。

具体实现步骤:
一、倒包:
将我们实现编辑好的jar包导入lib下。

1、util工具包:jdbc.properties;PropertiesReader.java;JdbcUtils.java
2、dao包:GeneralDao.java;ORMapping.java;SqlParam.java
在这里插入图片描述
二、打开jdbc.propreties 中的库名改为要用库名。
在这里插入图片描述
三、建包:
1、sql包:.sql文件(记得运行)
2、model包:映射类.class。
3、bo包:需要的查询方法,引用dao层。
*DAO:DataAccessObject(数据访问对象):负责java对数据的增删改查。
*B O:BusinessObject(业务对象层的缩写):负责控制层,对Java的控制。
在这里插入图片描述
四、Bo层操作
1、静态引入dao层所有文件。
2、①编写sql语句,
②编写方法调用合适的dao层的方法,
**BO层注意命名习惯:
增删改:我们习惯命名以do开头,
查询:我们习惯以query开头。
3、在方法书写中及时进行代码整理。
在这里插入图片描述
五、创建test包

BO层代码–范例:
package org.forten.jdbc.bo;
import static org.forten.jdbc.dao.GeneralDao.DAO;
import static org.forten.jdbc.dao.SqlParam.*;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.forten.jdbc.model.Course;

public enum CourseBo {
Course_Bo;
// 增 public int doAdd(Course course) {
String sql = "INSERT INTO course " + "(course_name,address,course_time,course_duration,amount_stu,teacher_id) "+ "values " + “(?,?,?,?,?,?)”;
return DAO.update(sql,
ofString(1, course.getCourseName()),
ofString(2, course.getAddress()),
ofLocalDate(3, course.getCourseTime()), ofInt(4, course.getCourseDur()),
ofInt(5, course.getAmount()),
ofInt(6, course.getTeacherId()));

}

// 删
public int doDelete(int id) {
	return DAO.update("DELETE FROM course WHERE ID=?", ofInt(1, id));
}

// 改
public int doUpdate(Course course) {
	String sql = "UPDATE course_name=?,address=?,course_time=?,course_duration=?,amount_stu=?,teacher_id=? "
			+ "FROM " + "course WHERE id=?";
	return DAO.update(sql, ofString(1, course.getCourseName()), ofString(2, course.getAddress()),
			ofLocalDate(3, course.getCourseTime()), ofInt(4, course.getCourseDur()), ofInt(5, course.getAmount()),
			ofInt(6, course.getTeacherId()), ofInt(7, course.getId()));
}

// 查全
public List<Course> queryfindAll() {
	String sql = "SELECT course_name,address,course_time,course_duration,amount_stu,teacher_id FROM course ";
	return DAO.findList(sql, this::MapTo);
}

// 查一
public Course queryById(int id) {
	String sql = "SELECT course_name,address,course_time,course_duration,amount_stu,teacher_id FROM course WHERRE ID=?";
	return DAO.findBean(sql, this::MapTo, ofInt(1, id));
}

//查一函数
public long queryByCount() {
	String sql = "SELECT count(id) FROM course";
	return DAO.findValue(sql, long.class);
}

private Course MapTo(ResultSet rs) throws SQLException {
	Course c = new Course();
	c.setCourseName(rs.getString(1));
	c.setAddress(rs.getString(2));
	c.setCourseTime(rs.getDate(3).toLocalDate());
	c.setCourseDur(rs.getInt(4));
	c.setAmount(rs.getInt(5));
	c.setTeacherId(rs.getInt(6));
	return c;
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值