后端学习:数据库安装、操作与Java操作数据库

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中操作)

  1. 创建数据库
CREATE DATABASE IF NOT EXISTS my_database;

这条语句将创建一个名为 my_database 的数据库,如果该数据库不存在的话。

  1. 进入所创建的数据库
use my_database;
  1. 创建表
    假设我们创建一个 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;语句验证是否建表成功

  1. 插入数据
    插入一些示例数据到 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 的信息。

  1. 查询数据
    查询 users 表中的所有数据:
SELECT * FROM users;

这条语句将返回 users 表中所有行的所有列数据。

  1. 修改数据
    假设要修改 Bob 的年龄为 26 岁:
UPDATE users
SET age = 26
WHERE username = 'bob';

这条语句将更新 users 表中 username 为 ‘bob’ 的记录的 age 列为 26。

  1. 删除数据
    假设要删除年龄大于等于 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;
    }

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值