actual operation of Jdbc

*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(数据访问对象):负责对数据的增删改查操作。
*B O:BusinessObject(业务对象): 负责控制层。

在这里插入图片描述

  • 四、Bo层操作
    1、静态引入dao层所有文件。
    2、①编写sql语句,
    ②编写方法调用合适的dao层的方法,

命名习惯:

增删改:我们习惯命名以do开头,
查询:我们习惯以query开头。

3、在方法书写中及时进行代码整理。

在这里插入图片描述

  • 五、创建test包

BO层代码–范例:

package org.forten.jdbc.bo;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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;
}
}