我使用Spring,Mysql,MyBatis测试,但有一些问题。 我在tomcat上运行我的应用程序。我的配置文件如下。spring,mysql,mybatis test
根的context.xml
<bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config-base.xml" />
<property name="mapperLocations" value="classpath*:sample/dao/sql/*.xml" />
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/sample
jdbc.username=player
jdbc.password=qwer1234!!
控制器和DAO是简单的选择。 当我呼叫控制器时,发生这种异常。
造成的:值java.sql.SQLException:拒绝访问用户 @ 'localhost' 的(使用密码:YES) '玩家€?' 在 com.mysql.jdbc.SQLError.createSQLException(的SQLError。 java:964)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)at com.mysql.jdbc.MysqlIO。 checkErrorPacket(MysqlIO.java:873)在 com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710) 在com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)在 com.mysql。 jdbc.ConnectionImpl.coreConnect(ConnectionImpl。的java:2194) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024) 在com.mysql.jdbc。 ConnectionImpl(ConnectionImpl.java:779)在 com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:47)在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知 源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 源)在java.lang.reflect.Constructor.newInstance(未知来源) 在com.mysql.jdbc.Util.handleNewInstance(Util.jav一:425)在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) 在 org.springframework.jdbc.datasource .SimpleDriverDataSource.getConnectionFromDriver(SimpleDriverDataSource.java:140) 在 org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153) 在 org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java :119) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ...... 57多个
跟踪已interesing消息。
造成的:值java.sql.SQLException: '?球员€' 访问被拒绝的用户@ 'localhost' 的(使用密码:是)
€? ====>这是从哪里来的?我检查了空白或空间。
我在相同的环境中有一个很好的工作代码。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
public class MySqlTest {
private final String DRIVER = "com.mysql.jdbc.Driver";
private final String URL = "jdbc:mysql://127.0.0.1:3306/test";
private final String USER ="player";
private final String PW = "qwer1234!!";
@Test
public void test() {
try{
Connection connection = DriverManager.getConnection(URL, USER, PW);
PreparedStatement ps = connection.prepareStatement("select * from sample");
ResultSet rs = ps.executeQuery();
System.out.println(rs);
} catch(Exception e){
e.printStackTrace();
}
}
}
任何提示?
谢谢