PHP 程序员学习 java 入门数据库增删改查

数据库增删改查

java 实现数据库的操作,完成数据库增删改查。

实现流程

  • 1.创建数据库驱动
  • 2.创建数据库连接
  • 3.编写SQL语句
  • 4.执行SQL语句,完成操作

创建一个数据库配置

文件放置于根目录下config/db.properties

jdbc.user=root
jdbc.pass=123456
jdbc.url=jdbc:mysql://127.0.0.1:3306/b?useSSL=FALSE&serverTimezone=UTC
jdbc.driver=com.mysql.cj.jdbc.Driver

读取操作类PropsUtil

package com.kongqi.mysql;

import java.io.IOException;
import java.util.Properties;

/**
 * 读取配置文件数据
 */
public class PropsUtil {
    private static Properties properties;
    private PropsUtil(){

    };
    static {
        properties=new Properties();
        //加载文件
        try {
            properties.load(PropsUtil.class.getClassLoader().getResourceAsStream("db.properties"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static String getValue(String key){
        return properties.getProperty(key);
    }
}

驱动和连接数据库

数据库帮助类

package com.kongqi.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbHelper {
    private DbHelper() {
    }

    private static String url;
    private static String user;
    private static String passwrod;
    private static String driver;

    private static final ThreadLocal<Connection> conn=new ThreadLocal<>();

    static {
        url = PropsUtil.getValue("jdbc.url");
        user = PropsUtil.getValue("jdbc.user");
        passwrod = PropsUtil.getValue("jdbc.pass");
        driver = PropsUtil.getValue("jdbc.driver");
        //注册驱动
        try {
            Class.forName(driver);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    public synchronized static Connection getMysqlConnection() {
        //
        Connection connection=conn.get();

        if(connection==null){
            try {
                connection=DriverManager.getConnection(url,
                        user,
                        passwrod);
                conn.set(connection);

            } catch (SQLException throwables) {
                throwables.printStackTrace();
                System.out.println("数据库连接不上");
            }

        }
        return  connection;

    }

    public static void closeResources(Connection connection) {

        try {
            if (connection != null) {
                connection.close();
                conn.remove();
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

实现增加数据

先创建createStatement,再来实现executeUpdate 完成SQL的输出

 Connection connection=DbHelper.getMysqlConnection();
//添加
String sql5="insert into users(name,token,email,password) values('kdfad','e3rewrerewr','dd@qq.com','123245')";
try {
        Statement stm=connection.createStatement();
        int result=stm.executeUpdate(sql5);
        System.out.println("有"+result+"行记录添加");
} catch (SQLException throwables) {
        throwables.printStackTrace();
}

实现更新数据

先创建createStatement,再来实现executeUpdate 完成SQL的输出

String sql3="update users set name='kongqierer'where id=2";
try {
        Statement stm=connection.createStatement();
        int result=stm.executeUpdate(sql3);
        System.out.println("有"+result+"行记录被修改");
} catch (SQLException throwables) {
        throwables.printStackTrace();
}

实现删除数据

先创建createStatement,再来实现executeUpdate 完成SQL的输出

//删除
String sql4="delete from users  where id=2";
try {
        Statement stm=connection.createStatement();
        int result=stm.executeUpdate(sql4);
        System.out.println("有"+result+"行记录被被删除");
} catch (SQLException throwables) {
        throwables.printStackTrace();
}

查询

不带参数查询
先创建Statement 接口,再来执行executeQuery

try {
        Statement st =  connection.createStatement();
        ResultSet rs =  st.executeQuery("select*from users");
         while (rs.next()){
                    System.out.println(rs.getString("name"));
            }
} catch (SQLException throwables) {
        throwables.printStackTrace();
}

带查询参数

创建 PreparedStatement 接口,再来执行executeQuery

String sql2="select * from users where id=?";
    try {
            PreparedStatement ps=connection.prepareStatement(sql2);
            ps.setString(1,"2");
            ResultSet rs=ps.executeQuery();
            while (rs.next()){
                    System.out.println(rs.getString("name"));
            }

    } catch (SQLException throwables) {
            throwables.printStackTrace();
    }

获得新增id

 Connection connection=DbHelper.getMysqlConnection();
//添加
String sql5="insert into users(name,token,email,password) values('kdfad','e3rewrerewr','dd@qq.com','123245')";
try {
        Statement stm=connection.createStatement();
        int result=stm.executeUpdate(sql5);
        System.out.println("有"+result+"行记录添加");
        ResultSet rs=stm.getGeneratedKeys();
        if(rs.next()){
                System.out.println(rs.getLong(1));
        }
} catch (SQLException throwables) {
        throwables.printStackTrace();
}

事务操作

Connection connection=DbHelper.getMysqlConnection();
        //添加
        String sql5="insert into users(name,token,email,password) values('kdfad','e3rewrerewr','dd3323@qq.com','123245')";

        try {
            connection.setAutoCommit(false);//关闭自动事务

            Statement stm=connection.createStatement();
            int result=stm.executeUpdate(sql5,1);

            System.out.println("有"+result+"行记录添加");
            ResultSet rs=stm.getGeneratedKeys();
            if(rs.next()){
                System.out.println(rs.getLong(1));
            }
            connection.commit();//提交事务

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }catch (Exception e){
            try {
                connection.rollback();//回滚
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
如果你觉得本站帮助到您,麻烦您帮点个小广告支持下本站,感谢不尽。

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。

公告通知

关于网站广告,由于需要营运成本,所以增加了广告联盟。
如果你觉得本站帮助到您,麻烦您帮点个小广告,感谢不尽。

空气

空气

热卖技术,喜欢新东西。

周VIP 魔童降世
查看更多

最新视频课程

Laravel 消息通知使用

Laravel 的 PhpSpreadsheet 包入门

ace.js 打造一款属于你的 Web 编辑器,入门文档。

wap2App 入门讲解,100%速成,全面为你讲解。

Laravel Permission 中文文档

Laravel 设置请求头 header 参数

Laravel 实现 RBAC 权限管理功能 Permission 包操作

解释 OAuth 2.0 认证 和使用场景说明

KongQi Laravel Admin2.0 文档安装

KongQi Laravel admin2.0 layui admin 版本序言

黑白课堂社区使用如何购买元宝和开通 VIP

易语言入门拖入文件导入到超级列表框表格内

易语言入门易语言定时任务模块

Visual Studio Code 入门和使用教程安装下载

易语言入门TAB 标签页制作

黑白课堂社区使用社区规范说明

钻级赞助商