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

时间:2012-02-01 22:16:12

标签: java mysql

我试着理解这部分代码:

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)

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

我尝试通过电子邮件替换Test2 Email_list测试,但我不知道列名邮件的位置。 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

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

INSERT INTO tablename VALUES (1, 2, 3)
如果表有三列,则可以写

,并且提供所有三列的值。

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

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

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

因此,在您的情况下,列名无处放置。

答案 1 :(得分:0)

您的连接字符串中缺少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();
  }
  }
}

祝你好运!!!