java自动创建库和创建表和插入记录

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: java自动创建库和创建表和插入记录

背景

项目metaverse 第三版为了让软件的使用者成为软件设计者,让用户自动生成代码。

于是今天向大家介绍的是使用java自动创建库和创建表和插入记录。在这个迅速发展的时代,我们要深刻明白,机器能做的不需要人做。

实操

注意点:

1、首先要引入连接数据库的pom,主要要和自己连接的数据库mysql版本一致

<dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.30</version>
      </dependency>

1、编写一个新建表的类

package demo;
import java.sql.*;
/**
 * @BelongsProject: JAVAtest
 * @BelongsPackage: first2023年3月21日
 * @Author: GuoYuan.Zhao
 * @CreateTime: 2023-03-21  16:06
 * @Description: TODO
 * @Version: 1.0
 */
public  class CreateTable {
    public   boolean createDB(String tableName) {
         PreparedStatement prepare;
        // 1.数据库名
        String DBName = tableName;
        // 数据库驱动
        String mysqlDriver = "com.mysql.cj.jdbc.Driver";
        // 数据库地址
        String url = "jdbc:mysql://localhost:3306/";
        String username = "root";
        String password = "123456";
        Connection conn = null;
        Connection newConn = null;
        try {
            // 将mysql驱动注册到DriverManager中去
            Class.forName(mysqlDriver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            // 建表语句
            String tableSql = "create table "+tableName+" (username varchar(50) not null primary key,"
                    + "password varchar(20)); ";
            // 建库语句
            String databaseSql = "create database " + DBName;
            // 链接数据库
            conn = DriverManager.getConnection(url, username, password);
            // 用于执行静态SQL语句并返回其产生的结果的对象
            Statement smt = conn.createStatement();
            if (conn != null) {
                System.out.println("数据库连接成功!");
                // 执行建库语句
                smt.executeUpdate(databaseSql);
                // 链接新建的数据库
                newConn = DriverManager.getConnection(url + DBName, username, password);
                if (newConn != null) {
                    System.out.println("已经连接到新创建的数据库:" + DBName);
                    Statement newSmt = newConn.createStatement();
                    // 执行建表语句
                    int i = newSmt.executeUpdate(tableSql);
                    // DDL语句返回值为0
                    if (i == 0) {
                        System.out.println(tableSql + "表已经创建成功!");
                        //执行sql
                        String sql1="insert into " +tableName+ " set username =" + "\"" + tableName +"\"";
                        System.out.println(sql1);
                        String url1 = "jdbc:mysql://localhost:3306/"+tableName;
                        Connection  conn1 = DriverManager.getConnection(url1, username, password);
                        //执行sq
                        prepare =conn1.prepareStatement(sql1);
                        //拿到返回值
                        int  result=prepare.executeUpdate();
                        System.out.println(result);
                    }
                }
            }
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        return true;
    }
}

2、编写客户端

package demo;
import java.util.Scanner;
/**
 * @BelongsProject: JAVAtest
 * @BelongsPackage: demo
 * @Author: GuoYuan.Zhao
 * @CreateTime: 2023-03-21  20:20
 * @Description: TODO
 * @Version: 1.0
 */
public class Student {
//   CreateTable createTable = new CreateTable();
public static void main(String[] args) {
    System.out.println("请输入姓名");
    Scanner scanner = new Scanner(System.in);
    String studentName = scanner.nextLine();
      CreateTable createTable = new CreateTable();
      createTable.createDB(studentName);
}
}

效果:

总结

你是要完成需求还是心里装着用户呢?

在Java中,要自动创建数据库、创建表和插入记录,你可以使用JDBC(Java Database Connectivity)来实现。JDBC是Java访问数据库的标准API,它允许你连接到不同类型的数据库并执行SQL操作。在实现之前,请确保你已经安装了Java开发环境(JDK)和你所需要的数据库,并且已经导入了JDBC驱动程序(如果需要的话)。

以下是一个简单的示例,展示如何使用Java创建数据库、表和插入记录。在此示例中,我们将使用SQLite作为数据库,因为它是一个轻量级的数据库,不需要单独的服务器安装。

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

连接到数据库并创建库:

public class DatabaseExample {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        try {
            // 注册SQLite的JDBC驱动程序
            Class.forName("org.sqlite.JDBC");
            // 创建连接
            connection = DriverManager.getConnection("jdbc:sqlite:test.db");
            System.out.println("连接成功");
            // 创建Statement对象
            statement = connection.createStatement();
            // 创建表
            String createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
            statement.execute(createTableQuery);
            System.out.println("表已创建");
            // 插入记录
            String insertQuery = "INSERT INTO users (name, age) VALUES ('John', 30)";
            statement.executeUpdate(insertQuery);
            System.out.println("记录已插入");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭连接和Statement对象
                if (statement != null)
                    statement.close();
                if (connection != null)
                    connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码将创建一个名为"test.db"的SQLite数据库文件,并在其中创建一个名为"users"的表,然后插入一条记录。

请注意,这只是一个简单的示例,实际应用中可能需要更复杂的数据库操作和错误处理。另外,在真实项目中,你可能会使用数据库连接池来管理连接而不是在每次操作时都手动创建连接。

如果你想使用其他类型的数据库(例如MySQL、PostgreSQL等),则需要更改连接URL和驱动程序的类名。在这种情况下,确保你已经将相应的数据库驱动程序(JAR文件)包含在你的项目中。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
Java 开发者
Java一分钟之-Quasar:协程库
【6月更文挑战第12天】Quasar是Java的高性能协程库,通过字节码增强实现轻量级并发模型——协程和通道,降低并发处理的复杂性和资源消耗。本文探讨了Quasar的常见问题,如内存泄漏、死锁和过度使用,提出相应避免策略,并提供了一个简单的协程间数据交换的代码示例。正确使用Quasar能提升程序性能和可维护性。
221 1
|
3月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
13天前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
29天前
|
JSON Java 数据格式
Java Jackson-jr库使用介绍
Jackson-jr是专为资源受限环境设计的轻量级JSON处理库,适用于微服务、移动应用及嵌入式系统。它通过牺牲部分高级功能实现了更小体积和更快启动速度,非常适合对库大小敏感的项目。本文将介绍如何使用Jackson-jr进行JSON序列化与反序列化,并演示处理嵌套对象与数组的方法。此外,还介绍了自定义序列化与反序列化的技巧以及性能与功能的权衡。通过示例代码,展示了Jackson-jr在常见任务中的高效与灵活性。
20 0
|
2月前
|
数据采集 存储 前端开发
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
|
3月前
|
安全 Java
Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
该博客文章通过Java代码示例演示了生产者-消费者问题,其中生产者在仓库未满时生产产品,消费者在仓库有产品时消费产品,通过同步机制确保多线程环境下的线程安全和有效通信。
|
3月前
|
安全 Java API
Java 8 流库的魔法革命:Filter、Map、FlatMap 和 Optional 如何颠覆编程世界!
【8月更文挑战第29天】Java 8 的 Stream API 通过 Filter、Map、FlatMap 和 Optional 等操作,提供了高效、简洁的数据集合处理方式。Filter 用于筛选符合条件的元素;Map 对元素进行转换;FlatMap 将多个流扁平化合并;Optional 安全处理空值。这些操作结合使用,能够显著提升代码的可读性和简洁性,使数据处理更为高效和便捷。
81 0
|
3月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot引入Caffeine作为缓存库的问题如何解决
|
5月前
|
存储 算法 搜索推荐
Java中的数组函数库及其使用技巧
Java中的数组函数库及其使用技巧
|
5月前
|
存储 并行计算 算法
深入解析Java并发库(JUC)中的Phaser:原理、应用与源码分析
深入解析Java并发库(JUC)中的Phaser:原理、应用与源码分析