java.sql.SQLException:没有选择数据库 – 为什么?
我试图学习如何通过
Java访问mySQL数据库的最后几天.
我能够加载驱动程序并获得与数据库的连接(至少我是这么认为的,因为我没有得到例外……) 代码是: import java.sql.*; public class test { public static void main(String[] args) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("driver loaded..."); } catch(ClassNotFoundException e){ System.out.println("Error in loading the driver..."+e); System.exit(0); } try { Connection dbConnection= DriverManager.getConnection("jdbc:odbc:test","root","password"); System.out.println("Connection successful..."); Statement stmt = dbConntection.createStatement(); stmt.executeUpdate("create table Accounts ( name char(20) )"); } catch(SQLException e) { System.out.println("database-ConnectionError: "+e); System.exit(0); } } } 当我执行它时,它说:
我真的不知道这个问题,因为我认为在“getConnection”过程中选择了数据库…. stmt.executeUpdate("use test;"); 创建Statement后. 不幸的是它没有用,因为我有另一个例外,说我应该检查语法.我不明白,因为在我的命令行中它工作得很好…… 我希望你能帮助我,在我自己的搜索中我没有错过这个解决方案! 已经感谢所有回复并利用时间解决问题的人! PS.如果我忘了指出一些重要的信息(我不认为我这样做)请问:) 编辑:我还试图在运行时创建一个新的数据库 stmt.executeUpdate("CREATE DATABASE test;"); 这实际上有效,但数据库也不会被选中…… 解决方法
首先,我正在考虑我的答案,向您展示与MySQL数据库连接的另一种更好的方法,它更容易,并且更少nu-expected Exception(s).
你需要做一些步骤: >下载Connector/J并将其添加到您的类路径中(如果您使用的是IDE,则将.jar添加到库中,或者在YouTube上有很多内容). import java.sql.*; public class MySqlConnection { private String MYSQL_DRIVER = "com.mysql.jdbc.Driver"; private String MYSQL_URL = "jdbc:mysql://localhost:3306/test"; private Connection con; private Statement st; private ResultSet rs; public MySqlConnection() { try { Class.forName(MYSQL_DRIVER); System.out.println("Class Loaded...."); con = DriverManager.getConnection(MYSQL_URL,"",""); System.out.println("Connected to the database...."); st = con.createStatement(); int c =st.executeUpdate("CREATE TABLE Accounts (Name VARCHAR(30))"); System.out.println("Table have been created."); System.out.println(c+" Row(s) have been affected"); con.close(); } catch(ClassNotFoundException ex) { System.out.println("ClassNotFoundException:n"+ex.toString()); ex.printStackTrace(); } catch(SQLException ex) { System.out.println("SQLException:n"+ex.toString()); ex.printStackTrace(); } } public static void main(String...args) { new MySqlConnection(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |