Solución de error de pasos de configuración MySQL8.0 de conexión Mybatis-Spring

Archivos de configuración y entorno

  • Versión jar de JDBC: 8.0.11
  • Versión jar de Mybatis: 3.4.6
  • Versión de jarra de primavera: 4.3.18
  • Versión jar de Mybatis-Spring: 1.3.1
  • Archivo de información de configuración: db.properties
  • Archivo de configuración de Spring: applicationContext.xml
  • La ruta de prueba es como se muestra a continuación
    Inserte la descripción de la imagen aquí

Configurar db.properties

  • Complete el siguiente contenido en la configuración db.properties

    # 驱动名这样写
    jdbc.driver=com.mysql.cj.jdbc.Driver
    # url这样写
    jdbc.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    # 数据库用户名
    jdbc.username=root
    # 数据密码
    jdbc.password=password 
    
    • Aquí hay un error, es decir, username se usa como clave del nombre de usuario. En este caso, se usa $ {username} al configurar la fuente de datos en applicationContext.xml. Esto causará un problema, porque la expresión XML $ {username}, representa el nombre de usuario bajo la ruta del entorno de la computadora. Es decir, se usa el nombre de usuario de su computadora, no el nombre de usuario de la base de datos. En resumen, no use el nombre de usuario como el nombre de la clave . yo uso jdbc.username.

Configurar applicationContext.xml

  1. En applicationContext.xml, importe el archivo db.properties.
    <context:property-placeholder location="db.properties"/>
    
  2. Configurar fuente de datos
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    
  3. Configure Mybatis para escanear el archivo mapper.XML
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 写一些数据库的配置, 因为我没用到, 所以用不着 -->
        <!-- <property name="configLocation" value="sqlMapConfig.xml"/> -->
        <property name="mapperLocations" value="com/dao/mapper/*.xml"/>
    </bean>
    
  4. Escanee todas las interfaces de la capa dao
    <!-- 扫描所有dao -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.dao" />
        <!-- 单数据源可以不写sqlSessionFactoryBeanName属性 -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
    

Configurar la interfaz de capa dao y el archivo de mapeador

  1. interfaz dao
    public interface UserDao {
          
          
    	public List<User> selAll();
    }
    
  2. archivo mapperXML
    <mapper namespace="com.dao.UserDao">
    	<select  id="selAll" resultType="com.entity.User">
        	select * from user
    	</select>
    </mapper>
    

prueba

@Test
public void selAll() {
    
    
   ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserDao userDao = context.getBean(UserDao.class);
   List<User> list = userDao.selAll();
   System.out.println(list);
}

Supongo que te gusta

Origin blog.csdn.net/qq_39906884/article/details/84435888
Recomendado
Clasificación