数据库连接操作步骤
- 导入数据库驱动
- 建立数据库连接
- 构造字符串类型的SQL语句
- 建立SQL预编译
其中前两步,在多次数据库查询时,只要执行一次,并保证数据库连接即可。
SELECT语句
SELECT
字段名或字段表达式
FROM 表名称
WHERE 条件表达式
举例:SELECT id,name,status FROM sys_sch_dep_maj_info WHERE id = '010101'
含义:查看 sys_sch_dep_maj_info 表中的字段 id = '010101' 的信息
INSERT INTO语句
INSERT INTO 表名称 VALUES (值1,值2,值3...)
INSERT INTO 表名称 (字段1,字段2) VALUES (值1,值2...)
第二种形式明确表明字段与值的顺序关系
举例: INSERT INTO sys_sch_dep_maj_info(id,name,status) VALUES('020101','英语',1);
UPDATE语句
UPDATE 表名称
SET 字段1 = 值1,字段2 = 值2...
WHERE 条件表达式
举例:UPDATE sys_sch_dep_maj_info SET id = '020101',name = '法语',status = 1;
DELETE语句
DELETE FROM 表名称
WHERE 条件表达式
部分方法解释
- 记录的插入、删除、修改
先建立字符串形式的INSERT INTO / DELETE /UPDATE 语句然后用 executeUpdate();
executeUpdate():方法返回值为int,表示成功增加的记录个数,
如果返回值为0,则表明操作不成功
- 记录的查询
先建立字符串形式的SELECT 语句然后用 executeQuery();
properties文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mec_javase_2019
user=root
password=******
实现代码
package com.mec.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mec.util.PropertiesParser;
import com.mysql.jdbc.PreparedStatement;
public class TestForDatabase {
public static void main(String[] args) {
//导入MySQL数据库驱动类
PropertiesParser.loadProperties("/dataBase.properties");
try {
Class.forName(PropertiesParser.value("driver"));
// 创建数据库连接
// url 数据库服务器地址、数据库名称
// user 数据库用户名
// password 数据库用户密码
Connection connection = DriverManager.getConnection(PropertiesParser.value("url"),
PropertiesParser.value("user"),
PropertiesParser.value("password"));
// 准备sql语句
String sqlInsert = "INSERT INTO sys_sch_dep_maj_info"
+ " (id,name,status) "
+ " VALUES(?,?,?)";
PreparedStatement state = (PreparedStatement) connection.prepareStatement(sqlInsert);
// 下标从1开始!
state.setString(1,"020102");
state.setString(2, "法语");
state.setBoolean(3,true);
state.executeUpdate();
// 实现记录的插入、更改、删除
String sql = "SELECT id,name,status"
+ " FROM sys_sch_dep_maj_info";
// 建立sql语句的“预编译”,为数据库访问做准备
PreparedStatement state = (PreparedStatement) connection.prepareStatement(sql);
ResultSet rs = state.executeQuery(sql);
// 执行sql语句,得到“结果集”
// 遍历“结果集”
while(rs.next()) {
// 得到第一条记录
// 依次得到该记录的每一个字段
String id = rs.getString("id");
String name = rs.getString("name");
boolean status = rs.getBoolean("status");
System.out.println("id:" + id + " name:" + name + " status:" + status);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
数据库表
运行结果
id:010000 name:西安邮电大学 status:true
id:010100 name:通院 status:true
id:010101 name:通工 status:true
id:010102 name:信工 status:true
id:010103 name:广电 status:true
id:020000 name:陕西师范大学 status:true
id:020100 name:外国语学院 status:true
id:020101 name:英语 status:true
id:020102 name:法语 status:true
id:020200 name:中文系 status:true
id:030000 name:西安外国语大学 status:true
id:040000 name:西北政法大学 status:true