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;
}
}