[그룹웨어] : 마이바티스 VO & DatabaseConfiguration 설정 (TypeAlias)

지환·2024년 1월 16일
0

그룹웨어

목록 보기
11/17

하.. vscode로 스프링부트 환경 설정하고 마이바티스 연동을 하는데... xml로 매핑 하는게 아니여서 3시간 정도 삽질 했다..

참고한 사이트

https://bongra.tistory.com/193?category=1046655

https://n1tjrgns.tistory.com/199

이렇게 시도해도 안 됐다.

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);

        //아래 두줄 추가
        sqlSessionFactoryBean.setVfs(SpringBootVFS.class);
        sqlSessionFactoryBean.setTypeAliasesPackage
                                        ("DTO/VO 클래스가 있는 패키지 경로");

내가.. 선택한 방법은

 	@Bean
 	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
 		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
 		sqlSessionFactoryBean.setDataSource(dataSource);
 		sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/com/workcon/mybatis/mappers/**/*.xml"));
		sqlSessionFactoryBean.setTypeAliasesPackage("com.WorkConGW.board.notice.dto");

		return sqlSessionFactoryBean.getObject(); 
 	}

패키지로 경로를 준 다음에

@Alias("searchNoticeVO")
public class NoticeVO extends BaseVO{
    private int notice_id;
    private String notice_title;
    private String notice_content;
    private int notice_readcnt;
    @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    private String notice_create_dt;
    private String notice_update_dt;
    private String notice_important_yn;
    private String emp_writer_id;
    private String notice_update_id;
    private List<AttachVO> noticeAttachList;
    private int attachCount;
    private String searchDt;

이런식으로 어노테이션을 통해서 타입알리아스 명을 적어줬다.

    <select id="noticeList" parameterType="searchNoticeVO" resultType="map">
        select NOTICE_ID, NOTICE_TITLE, NOTICE_CONTENT, NOTICE_READCNT, NOTICE_CREATE_DT
             , NOTICE_UPDATE_DT, NOTICE_IMPORTANT_YN, EMP_WRITER_ID, NOTICE_UPDATE_ID
        from notice
    </select>

이젠 파라미터로 Ailas 명을 주니 이젠 잘 넘어간다...하하

처음엔 Config.xml 생성해도 안 되서... 위 방법으로 했으니 참고

나처럼 삽집 하는 사람이 없길..

  • 추가적으로 두 개를 사용할 때,
 	@Bean
 	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
 		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
 		sqlSessionFactoryBean.setDataSource(dataSource);
 		sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/com/workcon/mybatis/mappers/**/*.xml"));
		 sqlSessionFactoryBean.setTypeAliasesPackage("com.WorkConGW.board.notice.dto, com.WorkConGW.emp.dto");

		return sqlSessionFactoryBean.getObject(); 
 	}

이런식으로 작성하면 된다.


겪은 에러들..

java.nio.file.NoSuchFileException: C:\Users\Ohjihwan\.gradle\caches\modules-2\files-2.1\com.oracle.ojdbc\orai18n\19.3.0.0\a6960d6c18840e07dbc5b6afe760d099e47517bb\gdk_custom.jar
        at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
        at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:53)
        at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38)
        at java.base/sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:199) 
        at java.base/java.nio.file.Files.readAttributes(Files.java:1851)
        at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1428)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:718)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:252)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:181)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
        at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65)
        at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)
        at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:397)
        at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:332)
        at org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath(StandardJarScanner.java:297)       
        at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:238)
        at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)
        at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104)
        at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:83)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4850)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)       
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)   
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)       
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)   
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
        at org.apache.catalina.startup.Tomcat.start(Tomcat.java:488)
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123) 
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:104)     
        at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:489)
        at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:211)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:183)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:161)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:610)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:746)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:448)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:324)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1321)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1310)
        at com.WorkConGW.WorkConGwApplication.main(WorkConGwApplication.java:14)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)  
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
profile
아는만큼보인다.

0개의 댓글