每日收获
构建数据库的MySQL语言
CREATE DATABASE project;
USE project;
CREATE TABLE IF NOT EXISTS project(
project_id VARCHAR(8) PRIMARY KEY COMMENT'八位数字前四位表示两位年两位月,后四位表示序号:例如:24100130',
project_name VARCHAR(150) COMMENT'字符串(不超过50个汉字)',
projec_location VARCHAR(200) COMMENT'字符串(要求实现XX省XX市XX区XX)',
project_property ENUM('道路','管廊','住宅','商业','公建','园林绿化','产业类'),
total_investment INT NOT NULL COMMENT'项目总投资',
current_investment INT NOT NULL COMMENT'截至目前投资金额',
invesment_2025 INT NOT NULL COMMENT'2025年度投资金额',
construction_content VARCHAR(1000) NOT NULL COMMENT'建设内容 字符串(不超过500个汉字)',
start_time DATE NOT NULL COMMENT'',
completion_time DATE NOT NULL COMMENT'',
report_date DATE NOT NULL COMMENT'',
audit_status TINYINT DEFAULT 0 COMMENT'',
audit_opinion VARCHAR(1000) COMMENT''
);
注意的要点:
1.IF NOT EXISTS(避免数据库重复,报错)
2.PRIMARY KEY主键(类似于身份证,比如一个学生只能有一个独特的学号,别的学生不能重复,且写了这个不再需要NOT NULL,默认包含)
3.COMMENT 注释,让文本变得易理解.
4.ENUM 枚举,后面需要加小括号,里面的选项需要用单引号包起来,且每个选项间需要用逗号隔开.
5.DATE SQL中专门用于存储日期的数据类型,只存年月日,不包含时分秒
6.TINYINT DEFAULT 0定义一个小范围整数字段,当插入数据没给这个字段赋值时,数据库自动给他填充默认值0.核心:避免字段置为空,简化数据插入.
数据库工具的代码
package util;
import java.sql.*;
public class DBConnection {
private static final String DRIVER="com.mysql.cj.jdbc.Driver";
private static final String URL="jdbc:mysql://localhost:3306/project";
private static final String USER="root";
private static final String PASSWORD="123456";
static {
try{
Class.forName(DRIVER);
}catch(ClassNotFoundException e){
e.printStackTrace();
System.err.println("数据库驱动加载失败");
}
}
public static Connection getConnection(){
Connection conn=null;
try{
conn= DriverManager.getConnection(URL,USER,PASSWORD);
}catch(SQLException e){
e.printStackTrace();
System.err.println("数据库连接失败");
}
return conn;
}
public static void close(Connection conn, PreparedStatement p,ResultSet r){
try{
if(r!=null)r.close();
if(p!=null) p.close();
if(conn!=null)conn.close();
}catch(SQLException e){
e.printStackTrace();
System.err.println("数据库资源关闭失败");
}
}
}
注意:
1.需要四个参数数据库的驱动DRIVER,数据库的链接地址URL,用户名USER,用户密码PASSWORD.
2.static{Class.forName(DRIVER);}加载数据库驱动
3.DriverManager.getConnection() 是 Java 中 JDBC(Java 数据库连接)规范的核心方法,用于建立与数据库的物理连接,返回一个 Connection 对象,后续所有数据库操作(如执行 SQL、管理事务)都依赖这个连接对象。
4.Connection conn数据库连接对象
5.在关闭数据库资源,关闭顺序必须遵循 “后创建的先关闭”.
资源依赖关系:
ResultSet(结果集,r)依赖于 PreparedStatement(预处理语句,p)创建(通过 p.executeQuery() 生成)。
PreparedStatement 依赖于 Connection(连接,conn)创建(通过 conn.prepareStatement() 生成)。
若先关闭 conn,会导致 p 和 r 底层资源被强制释放,可能引发 SQLException(“已关闭的连接”)。而先关闭 r 和 p,不会影响上层的 conn 资源,符合 “依赖倒置” 的关闭逻辑。
浙公网安备 33010602011771号