当前位置: 首页 > article >正文

JAVA:数据库(mysql)编程初步学习\JDBC(附带项目文件)

给入门的同学初步了解JDBC,本人学疏才浅也希望可以给新人启发,编程的函数比较简单没有用更多库,方便给新人一个舒适的理解

tips:附带编程全套的代码,欢迎大家自由使用,仅供学习!

(文件代码几千行,纯个人写入,大家用了点点赞吧)

实验环境:

        win11:22H2

        JDK:18

        idea:2023

        JDBC:8.0.33

        mysql:9

        可视化sql:Navicat 17

        其它依赖(附加,可以不管--除非使用网络编程的模块在ip_add中)

Maven(不可以直接复制,只是列出使用的版本和环境依赖库等):

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
 <dependencies>

        <!-- Gson dependency -->

        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20200518</version>
        </dependency>





        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.lionsoul</groupId>
            <artifactId>ip2region</artifactId>
            <version>2.7.0</version>
        </dependency>

    </dependencies>

基本使用

1.引入sql库

创建链接数据库的函数

package connect;

import java.sql.*;
public class JDBC {


    public JDBC(){

    }
   public static Connection use_connecting() throws ClassNotFoundException, SQLException {
       Class.forName("com.mysql.cj.jdbc.Driver");
       String url="jdbc:mysql://localhost:3306/pla";
       String name="root";
       String passwords="1234**56***";
       return DriverManager.getConnection(url,name,passwords);
   }
   public static  void close_to_connect(Connection conn,PreparedStatement pst,ResultSet rs){
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        if (pst!=null){
            try {
                pst.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        if (rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
   }
}

这个方法返回一个链接对象:

测试文件:

package try_to_do;

import java.sql.*;


public class test {

    public static void main(String[] args) throws  Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");//获取驱动


        //获取连接
        String url="jdbc:mysql://localhost:3306/try_to_do.test";
        String name="root";
        String password="123456";
        Connection conn = DriverManager.getConnection(url,name,password);
        //SQL命令
        String sql = "update try_to_do.test set age = 21 where id = 1";

        //命令对象
        Statement stmt = conn.createStatement();

        //执行SQL
        int count  = stmt.executeUpdate(sql);//i 为命令影响的行数
        //处理结果
        System.out.println(count);
        //释放资源
        stmt.close();
        conn.close();
    }

}

另一种(文件里面有)

tips:结构化的完成项目更方便完成

专门连接数据库的,装对象类的,主函数的,其他模块的,接口一类,实现一类,Maven单独放一处,lib放一处

实例(文章附属文件):做一个有用户登录的购票系统,cmd进行i/o

注意点:用户的操作输入,一般为字符串,判断是否合法再转换为对应的类型操作

--使用的方法之一:正则表达式

时间正则表达式:

    private static final Pattern TIME_PATTERN = Pattern.compile("^([01]?\\d|2[0-3]):[0-5]?\\d:[0-5]?\\d$");

数字在一个范围的正则表达式(字符串输入):

 private boolean isValidPosition(int lie, int hang, int maxRows) {
        return lie >= 1 && lie <= 6 && hang >= 1 && hang <= maxRows;
    }


    private boolean isNumeric(String str) {
        return Pattern.matches("\\d+", str);
    }

附带上我的数据库内容:

剩下的内容,大家可以在附属文件内学习。

本篇只是简单介绍,不具备权威


http://www.kler.cn/a/384971.html

相关文章:

  • fpga生成pwm简单案例
  • IPsec传输模式与隧道模式的深度解析及应用实例
  • A019基于SpringBoot的校园闲置物品交易系统
  • 大A终究是逃不过高开低走的魔咒
  • 【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加
  • git的使用、router和route的区别以及v-show和v-if的差别
  • Maven随笔
  • 你是我的映射,我是你的值:C++ map 中的心灵共鸣
  • 太速科技-634-基于3U PXIe的VU3P FMC+数据接口板
  • 旋转位置编码
  • Flutter 主流常用第三方库、插件收集
  • Mybatis中的缓存
  • 定性数据分析 (QDA) 软件NVivo V15现已发布!融合AI让数据分析更出色!
  • 每日一题——第一百二十一题
  • 2024 网鼎杯 - 青龙组 Web WP
  • Chrome调试工具(查看CSS属性)
  • Java每日刷题之二分算法
  • TDengine 集群能力:超越 InfluxDB 的水平扩展与开源优势
  • ‌webdriver.Chrome()参数简介
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(1)
  • acmessl.cn推荐一款好用的免费申请ssl证书的平台
  • 飞凌嵌入式FET527N-C核心板现已适配Android 13
  • Python/FastAPI 的并发能力对比
  • 【EMNLP2024】面向长文本的文视频表征学习与检索模型 VideoCLIP-XL
  • 人工智能——小白学习指南
  • 算法详解——链表的归并排序非递归解法