0
JDBCドライバマネージャを使用してMySQL DBに接続している間、接続は正常に行われ、期待どおりの結果セットが取得されます。しかしorg.springframework.jdbc.datasource.DriverManagerDataSourceまたは org.springframework.jdbc.datasource.SimpleDriverDataSourceのいずれかを使用してSpring構成を経由して接続しようとしたときにロードされたJDBC MySQLドライバが、Springコンフィグレーションを介してMySQLに接続できません
JDBCドライバはcom.mysql.jdbc.Driverがロードされますが、作るために失敗しますMySQLとの接続
テストアプリケーションクラス: パッケージcom.xxxx.xxxx.xxxx;データソースの
import com.xxxx.xxxx.xxxx.dao.TimeslotDAO;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class App {
public static void main(String[] args) {
//testClassic(); // This works and gets the results.
testSpring(); // Fails with SQLException.
}
private static void testSpring(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("Spring-Module.xml");
TimeslotDAO timeSlot = (TimeslotDAO) ctx.getBean("timeslotDAO");
timeSlot.populateTimeSlotsCache();
}
private static void testClassic(){
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){
e.printStackTrace();
}
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/FR", "root", "xxxx");
if(conn!=null) {
String sql = "select * from TB_AUTO_xxx_SLOT_xxx " +
"where i_book_id =2639";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
System.out.println(rs.getLong(1));
}
if(rs!=null) rs.close();
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
春の構成:ログインで
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:msql://localhost:3306/FR" />
<property name="username" value="root"/>
<property name="password" value="xxxx"/>
</bean>
例外:
INFO: Loaded JDBC driver: com.mysql.jdbc.Driver
java.sql.SQLException: No suitable driver found for jdbc:msql://localhost:3306/FR
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:174)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:165)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
at com.xxxx.xxxx.xxxx.dao.impl.TimeslotDAOImpl.populateTimeSlotsCache(TimeslotDAOImpl.java:23)
at com.xxxx.xxxx.xxxx.App.testSpring(App.java:22)
at com.xxxx.xxxx.xxxx.App.main(App.java:16)
:: 'JDBC:msql' – Jens
@Jensミスが何であるかは、申し訳ありません – user2166213
JDBCを理解していない:mSQLのは、JDBCでなければなりません:M ** Y *接続文字列は次のようになります。 * SQL:value = "jdbc:msql:// localhost:3306/FR" - > value = "jdbc:m ** y ** sql:// localhost:3306/FR" – Jens