背景
项目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文件)包含在你的项目中。