1.数据库基本操作
1.1 使用的数据库
oracle,mysql
1.2 mysql安装
官网下载MySQL5.0
点击下一步
找到安装路径(计算机管理-服务-MySql)
配置环境变量(bin文件夹)
在命令行cmd输入mysql -uroot -p
![运行示例](https://img-blog.csdnimg.cn/direct/6b354600d8a942ae957839f4fe41d5c9.png#pic_center)
1.3 sql命令
表操作
show databases;
use 数据库名称;//选定某个数据库
show tables;
数据操作
select * from 数据库名;
insert into 数据库名(属性名) values (属性数据);
delete from 数据库名 where 条件,比如id=6;
update 表名 set
alter table;
1.4 实例(以下代码在cmd中操作)
- 创建数据库
CREATE DATABASE IF NOT EXISTS my_database;
这条语句将创建一个名为 my_database 的数据库,如果该数据库不存在的话。
- 进入所创建的数据库
use my_database;
- 创建表
假设我们创建一个 users 表来存储用户信息。
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
age INT
);
这条语句将创建一个 users 表,包含 id、username、email 和 age 四个列,其中 id 是主键,并且自动增长。
建表前后可以使用 show tables;
语句验证是否建表成功
- 插入数据
插入一些示例数据到 users 表中:
INSERT INTO users (username, email, age) VALUES
('alice', 'alice@example.com', 30),
('bob', 'bob@example.com', 25),
('charlie', 'charlie@example.com', 35);
这条语句将向 users 表插入三条记录,分别是 Alice、Bob 和 Charlie 的信息。
- 查询数据
查询 users 表中的所有数据:
SELECT * FROM users;
这条语句将返回 users 表中所有行的所有列数据。
- 修改数据
假设要修改 Bob 的年龄为 26 岁:
UPDATE users
SET age = 26
WHERE username = 'bob';
这条语句将更新 users 表中 username 为 ‘bob’ 的记录的 age 列为 26。
- 删除数据
假设要删除年龄大于等于 35 岁的用户信息:
DELETE FROM users
WHERE age >= 35;
这条语句将删除 users 表中所有年龄大于等于 35 岁的用户记录。
2.使用Java操作数据库
2.1 步骤
- 加载数据库驱动
import java.sql.*;
Class.forName("com.mysql.jdbc");
alter+Enter抛出异常
- 获取执行sql语句的数据库连接对象url和用户名、密码
String url="jdbc:mysql://localhost:3306//数据库名_com";
String username="root";
String passward="";//你自己的密码
-获取mysql链接对象
Connection conn=DriverManager.geyConnection(url,username,passward);
- 获取执行sql对象并执行sql语句
Statement state = connn.createStatement();
String select_sql="select * from user";
- 获取执行sql的返回结果集对象
ResultSet rs= state.executeQuery(select_sql);
- 循环遍历结果集
while(rs.next()){
String username1 = rs.getString("username");
String passward1 = rs.getString("passward");
System.out.println(username1+"="+passward1);
}
完整代码
import java.sql.*;
public class jdbcdemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/my_database";
//my_database改成自己的
String username="root";
String passward="**";//你自己的密码
Connection conn=DriverManager.getConnection(url,username,passward);
Statement state = conn.createStatement();
String select_sql="select * from users";
//我创建的table名为users,需要改成自己的table名
ResultSet rs= state.executeQuery(select_sql);
while(rs.next()){
//后面的四个就是你的table中的属性,可以根据自己的属性修改
String id = rs.getString("id");
String username1 = rs.getString("username");//前面有username所以改了一个
String emaii = rs.getString("email");
String age = rs.getString("age");
System.out.println(id+"\t"+username1+"\t"+emaii+"\t"+age);
}
}
}
注意,需要导入一个sql_connection的包,具体参照https://blog.csdn.net/m0_51955470/article/details/118895168 导入,注意导入到正确的project
2.2 对数据库链接进行封装
新建一个类,利用以下代码
private static String url = "jdbc:mysql://localhost:3306/my_database";
private static String username = "root";
private static String password = "root"; // Replace with your actual password
public static Connection getConn() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection(url, username, password);
}
public static void closeConn(Connection conn) throws SQLException {
if (conn != null) {
conn.close();
}
}
public static List<Object[]> executeQuery(String sql, Object... params) throws SQLException {
List<Object[]> resultList = new ArrayList<>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConn();
pstmt = conn.prepareStatement(sql);
setParams(pstmt, params);
rs = pstmt.executeQuery();
int columnCount = rs.getMetaData().getColumnCount();
while (rs.next()) {
Object[] row = new Object[columnCount];
for (int i = 1; i <= columnCount; i++) {
row[i - 1] = rs.getObject(i);
}
resultList.add(row);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
closeConn(conn);
}
}
return resultList;
}