首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JDBC应用程序在MySQL中创建数据库和表

使用JDBC应用程序在MySQL中创建数据库和表
EN

Stack Overflow用户
提问于 2016-01-12 09:55:54
回答 2查看 1.5K关注 0票数 1

我用Java为一个学校项目创建了一个程序。我使用MySQL工作台创建了数据库和表,但是现在我需要我的程序在其他计算机上工作,因此我需要它来检查数据库和表是否存在,如果不是自己创建的话。

以下是我的驱动程序类中的相关代码:

代码语言:javascript
运行
复制
private static Connection conn;

static
{
    try
    {
        Class.forName("com.mysql.jdbc.Driver");
    }
    catch (ClassNotFoundException exc)
    {
        javax.swing.JOptionPane.showMessageDialog(null, "Oops! Something seems to have gone wrong!\n\n" + exc, "Error", JOptionPane.ERROR_MESSAGE);
    }
}

public static Connection getMySQLConnection() throws SQLException
{
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tournament_manager", "studentCouncil", "****");
    return conn;
}

如前所述,如果数据库不存在,我想要创建的数据库称为"tournament_manager“。与数据库一起创建的表如下:

表1名称:密码

列1: passwordID类型: int(11)可空: NO

第2列:密码类型: varchar(20) Nullable: YES字符集: latin1

表2名称:锦标赛

列1: tournamentID类型: int(11)可空:无额外: auto_increment

列2: tournamentName类型: varchar(20)可空:无字符集: latin1

第3栏:日期类型:日期无效:否

第4列: startTime类型: int(11)可空: NO

第5列: matchDuration类型: int(11)可空: NO

第6列: breakDuration类型: int(11)可空: NO

第7列: numTeams类型: int(11)可空: NO

第8列: numVenues类型: int(11)可空: NO

表3名称: teams

列1: teamID类型: int(11)可空:无额外: auto_increment

列2: teamName类型: varchar(20)可空:无字符集: latin1

第3栏:点类型: int(11) Nullable: NO

第4列: tournaments_tournamentID类型: int(11)可空: NO

我是堆栈溢出的新手,所以我可能没有包括所有相关的信息或包含了无关的信息。如果我没有包括相关的细节,请问。

提前感谢您的支持!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-12 10:13:06

要创建表,应该使用"CREATE“SQL语法。这可以在数据库管理程序上完成,也可以在JDBC中完成。

代码语言:javascript
运行
复制
  stmt = conn.createStatement();

  String sql = "CREATE TABLE password" +
               "(passwordId INTEGER not NULL, " +
               " password VARCHAR(20), " + 
               " PRIMARY KEY ( passwordId ))"; 

  stmt.executeUpdate(sql);
票数 1
EN

Stack Overflow用户

发布于 2016-01-12 10:23:22

实际上,您可以使用Hibernate JPA来完成这个任务。

创建模型

代码语言:javascript
运行
复制
@Entity
@Table(name = "USER")
public class User{

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id
  @Column(name="FIRST_NAME")
  private String firstName
  @Column(name="LAST_NAME")
  private String lastName
}

定义hibernate自动创建

在applicationContext.xml (spring-servlet.xml或hibernate.cfg.xml)中添加以下内容:

代码语言:javascript
运行
复制
         <properties>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/DB"/>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value=""/>
            // That property create tables and key options.
            <property name="hbm2ddl.auto" value="create"/>
        </properties>

启动服务器

当您启动服务器时,hibernate将创建您的表或更新您的列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34740400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档