我试着理解这部分代码:
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测试,但我不知道列名邮件的位置。 谢谢你的帮助
答案 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();
}
}
}
祝你好运!!!