繁体   English   中英

如何使用Java更改数据库名称和表?

[英]How to change the database name and table using java?

我试图理解这部分代码:

Properties details= new Properties();
details.load(new FileInputStream("details.properties"));
String userName = details.getProperty("root");
String password = details.getProperty("mysqlpassword");

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection (url, userName, password);
System.out.println ("Database connection established");
PreparedStatement st = conn.prepareStatement("insert into 'Email_list' values(?)");
for(String mail:mails)

我知道测试数据库是默认数据库。 但是,如果我想使用现有数据库,我只会将测试修改为另一个数据库名称,不是吗? 如果是,如果我的新数据库是带有表名Email的Test2且包含varchar(100)的邮件列,我如何修改我的代码

我尝试用Test2 Email_list通过Email代替test,但是我不知道将列名称邮件放在何处。 谢谢你的帮助

您使用的INSERT语句省略了这些列。

INSERT INTO tablename VALUES (1, 2, 3)

如果表有三列并且提供了所有三列的值,则可以写入。

如果某些列可以保留为空或具有默认值,则可以编写

INSERT INTO tablename (column1, column2) VALUES (1, 2)

在此cas中, column3值为null或默认值。

因此,在您的情况下,列名不放在任何位置。

您的连接字符串中缺少PORT号...

String url = "jdbc:mysql://localhost/test"; 应该是String url = "jdbc:mysql://localhost:PORT_NUMBER/test"; 例如String url = "jdbc:mysql://localhost:3306/test";

让我知道您是否有任何疑问...

另外,请在下面检查Prepared Statement工作方式

import java.sql.*;

public class TwicePreparedStatement{
  public static void main(String[] args) {
  System.out.println("Twice use prepared statement example!\n");
  Connection con = null;
  PreparedStatement prest;
  try{
  Class.forName("com.mysql.jdbc.Driver");
  con = DriverManager.getConnection("jdbc:mysql:
//localhost:3306/jdbctutorial","root","root");
  try{
  String sql = "SELECT * FROM movies WHERE year_made = ?";
  prest = con.prepareStatement(sql);
  prest.setInt(1,2002);
  ResultSet rs1 = prest.executeQuery();
  System.out.println("List of movies that made in year 2002");
  while (rs1.next()){
  String mov_name = rs1.getString(1);
  int mad_year = rs1.getInt(2);
  System.out.println(mov_name + "\t- " + mad_year);
  }
  prest.setInt(1,2003);
  ResultSet rs2 = prest.executeQuery();
  System.out.println("List of movies that made in year 2003");
  while (rs2.next()){
  String mov_name = rs2.getString(1);
  int mad_year = rs2.getInt(2);
  System.out.println(mov_name + "\t- " + mad_year);
  }
  }
  catch (SQLException s){
  System.out.println("SQL statement is not executed!");
  }
  }
  catch (Exception e){
  e.printStackTrace();
  }
  }
}

祝好运!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM