단순 코드 기록/JSP

JSP_MVC

일일일코_장민기 2024. 3. 6. 18:15
728x90
SqlSessionFactory

 

package com.config;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class EmpFactory {
	static SqlSessionFactory sqlSessionFactory= null;
	static {
		String resource = "com/config/Configuration.xml";  //수정이 필요한 유일한 부분 
		InputStream inputStream= null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			System.out.println("configuration.xml 로딩 성공 ");
		} catch (IOException e) {
			e.printStackTrace();
		}
		 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	}
	
	public static SqlSession getSqlSession() {//
		SqlSession session = sqlSessionFactory.openSession();
		return session;
	}
	
}

 

Configuration
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	
	
<!-- jdbc.properties파일 등록-->
<!-- com/config/jdbc.properties -->
<properties resource = "com/config/jdbc.properties"/>
<!-- jdbc.properties파일 등록-->

<!--1.jdbc 경로지정
	2. dto alias
	3. 4가지 정보 설정
	4. mapper 설정
	5. MySqlSessionFactory 경로 수정
  -->

<typeAliases>
<typeAlias type="com.dto.DTO" alias="DTO"/>
</typeAliases>

  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <!-- db 연결 4가지 정보  -->
      <dataSource type="POOLED">
		
		  
		<!--$값으로 변경--> 
		<!--${properties의 각 네임}  -->
     	<property name="driver" value="${oracle.jdbc}"/>
        <property name="url" value="${oracle.url}"/>
        <property name="username" value="${oracle.userid}"/>
        <property name="password" value="${oracle.passwd}"/>
		<!--$값으로 변경--> 
      
      
      </dataSource>
    </environment>
  </environments>
  <!-- Mapper.xml의 경로 등록 (Mapper.xml파일이 존재해야함 )-->
  <mappers>
    <mapper resource="com/config/EmpMapper.xml"/>
  </mappers>
</configuration>

 

jdbc.properties

 

#key=value
#db 4 information
oracle.jdbc=oracle.jdbc.driver.OracleDriver
oracle.url=jdbc:oracle:thin:@localhost:1521:xe
oracle.userid=scott
oracle.passwd=tiger

mysql.jdbc=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql:localhost:3306\orcl
mysql.userid=scott
mysql.passwd=tiger
Mapper

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="EmpMapper">

<!--SELECT ALL-->
  <select id="select" resultType="DTO"><!-- 결과를 Dept의 List형태로 -->
<!--     select empno, ename, job, mgr, to_char(hiredate, 'yyyy/MM/dd') hiredate, sal, comm, deptno
 -->
 	select *
     from emp order by empno
    
  </select>    
  
  <insert id="insert" parameterType="DTO">
  
  	insert into emp values (#{empno}, #{ename}, #{job}, #{mgr}, #{hiredate}, #{sal}, #{comm}, #{deptno})    
  
  </insert>
  
  
  

</mapper>

 

Service
package com.service;
import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.config.EmpFactory;
import com.dao.DAO;
import com.dto.DTO;

public class Service {

	DAO dao;
	
	public Service() {
		super();
		dao = new DAO();
	}

	public List<DTO> selectAll() {
		SqlSession session = EmpFactory.getSqlSession();
		List<DTO> list = null;
		try {
			list = dao.selectAll(session);
		} finally {
			session.close();
		return list;
		}
	}
	
	public int insert(DTO dto) {
		SqlSession session = EmpFactory.getSqlSession();
		int num = 0;
		try {
			num = dao.insert(session, dto);
			session.commit();
			System.out.println("커밋 성공");
		} finally {
			session.close();
			System.out.println("세션 닫기");
		return num;
		}
	}
	
	
	
	
	
	
}

 

 

DAO(Data Access Object)
package com.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.dto.DTO;

public class DAO {

	public List<DTO> selectAll(SqlSession session) {
		List<DTO> list = session.selectList("select");
		return list;
	}

	public int insert(SqlSession session, DTO dto) {
		int num = session.insert("insert", dto);
		System.out.println("등록된 행 수: "+num);
		return num;
	}

}

'단순 코드 기록 > JSP' 카테고리의 다른 글

JSP_Prestatement  (0) 2024.03.06