Cuando se utiliza VS Code para el desarrollo de java+mybatis (proyecto que no es Maven), se produce un error: java.io.IOException: no se pudo encontrar el recurso mybatis-config.

Problemas al usar VS Code para el desarrollo de java+mybatis


pregunta

Cada aplicación basada en MyBatis se centra en una instancia de SqlSessionFactory. SqlSessionFactoryBuilder puede crear una instancia de SqlSessionFactory a partir de un archivo de configuración XML o una instancia de configuración preconfigurada. Generalmente usamos el siguiente código para obtener una instancia de SqlSessionFactory:

String resource = "mybatis-config.xml";  // 该xml文件配置了一个Configuration
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

Cuando se utiliza Idea para el desarrollo, solo necesita configurar la carpeta donde se encuentra el archivo xml como una carpeta de recursos, pero VS Code no la configura como un archivo de recursos (tal vez lo haya, pero no lo sé).
Cuando se usa Resources.getResourceAsXX(); en VS Code: java.io.IOException: no se pudo encontrar el recurso mybatis-config.xml


Solución

Hay dos soluciones

Método 1

Utilice la sobrecarga del método de compilación para leer el archivo directamente, de la siguiente manera:

// 直接读取文件方式

// 不使用Resources类帮我们读取xml文件,我们自己读取文件
InputStream is = new FileInputStream("MybatisDemo1/resources/mybatis-config.xml");
sqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

Método 2

Debido a que Resources.getResourceAsXX lee el directorio Fuentes (es decir, el directorio src) de forma predeterminada, solo necesita colocar el archivo xml en el directorio src (es decir, la ruta raíz del código fuente).
Insertar descripción de la imagen aquíEntonces puedes usar el siguiente código.

String configName = "mybatis-config.xml";
// 加载配置文件
InputStream resourceAsStream = Resources.getResourceAsStream(configName);
// 通过SqlSessionFactoryBuilder()构建SqlSessionFactory对象
sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

Nota: Tal vez su directorio de Fuentes no sea src. Puede verificar su directorio de Fuentes a través de los siguientes pasos.
Abra el administrador de recursos y busque PROYECTOS JAVA en el administrador de recursos . Coloque el mouse sobre él y aparecerán varios íconos a la derecha. Encuentre el el ícono... más a la derecha y haga clic en Configurar Classpath en el menú emergente , y luego podrá ver su directorio de Fuentes.
Insertar descripción de la imagen aquí


Resumir

Se recomienda usar el método 2, porque cuando desarrollamos, podemos usar <properties resources="jdbc.properties"></properties> en el archivo mybatis-config.xml para introducir otro archivo de configuración. Si usamos el método 1, no se encontrará el archivo "jdbc.properties", incluso si se escribe la ruta completa de jdbc.properties, se informará un error. Por lo tanto, se recomienda utilizar el método 2, que coloca mybatis-config.xml y jdbc.properties en el directorio src.

Supongo que te gusta

Origin blog.csdn.net/weixin_45345384/article/details/121242848
Recomendado
Clasificación