目录

  • 背景
  • 实操
  • 注意点:
  • 1、编写一个新建表的类
  • 2、编写客户端
  • 效果:
  • 总结

背景

项目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自动创建库和创建表和插入记录_System


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

总结

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