myBatis2

2024. 2. 16. 18:04Daily Codig Reminder

controller => list 주소 처리

return void로 설정

service.list()함수 이용 전체 데이터 select

전체 데이터 sysout확인 후 model에 저장

list.jsp로 응답위임

list.jsp =>

el태그 이용 전체 테이터 출력

main.jsp 수정

추가 => db insert 후 list 다시 띄우기

(51번 사원추가 테스트 )

2.삭제 => 51번 삭제 후 list다시 띄우기 (? 이용)

3.삭제=>51번 삭제 후 list다시 띄우기 (pathvariable이용)

3.수정 => 51번 사원정보 수정 후 list 다시 띄우기

list2 주소 처리 => ModelAndView => list2.jsp

list3 주소처리 => forward => list3.jsp

 

add/del/update

@Controller
public class MainController {
	@Autowired
	MemberService service;
	
	@RequestMapping("/list")//list.jsp
	public String list(Model m) {   //list.jsp
		System.out.println("list()=================");
		List<DeptDTO> list=service.list();
		//System.out.println(list);		
		m.addAttribute("list", list);
		return "list";//list.jsp
	}
	
	@RequestMapping("/add")
	public String add(DeptDTO dto) {
		System.out.println(dto);
		service.add(dto);
		return "redirect:list";
	}
	
	
	
	
	
	@RequestMapping("/del")
	public String del(String deptno) {
		System.out.println(deptno);	
		
		service.del(Integer.parseInt(deptno));		
		return "redirect:list";
	}
	
	
	@RequestMapping("/update")
	public String update(DeptDTO dto) {
	//	System.out.println(dto);
		service.update(dto);
		return "redirect:list";
	}
	

	
}

 

service

@Service  // component-scan 자동생성
public class MemberService {
	@Autowired
	DetpDAO dao;

	public List<DeptDTO> list(){
		return dao.list();
	}

	public void add(DeptDTO dto) {
	dao.add(dto);
		
	}

 

 

dao

@Repository  // component-scan 자동빈생성 
public class DetpDAO {
	@Autowired
	SqlSessionTemplate session;

	public List<DeptDTO> list(){
		return session.selectList("DeptMapper.list");
	}

	public void add(DeptDTO dto) {
		session.insert("DeptMapper.add", dto);
		
	}

 

 

 

dto

@Alias("dept")

 

 

 

mapper

<select id="list" resultType="dept">
	   select * from  dept order by deptno asc
	</select>
	<insert id="add" parameterType="dept">
		insert into dept values (#{deptno}, 
		#{dname}, #{loc})
	</insert>

	<delete id="del" parameterType="int">
		delete from dept where deptno= #{deptno}
	</delete>
	
	
	
	<update id="update" parameterType="dept">
		update dept set dname=#{dname}, loc=#{loc} where 
		deptno= #{deptno}
	</update>

 

 

root-context.xml

<!-- 1.jdbc.properties -->
	<context:property-placeholder location="classpath:com/config/jdbc.properties"/>
	
	
	<!-- 2.DBCP2 -->
	<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
		<property name="driverClassName" value="${oracle.jdbc}"></property>
		<property name="url" value="${oracle.url}"></property>
		<property name="username" value="${oracle.userid}"></property>
		<property name="password" value="${oracle.passwd}"></property>
	</bean>
	<!-- transaction의 시작  -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<tx:annotation-driven transaction-manager="txManager"/>
	<!-- trasaction처리 종료  -->
	<!--3.SqlSessionFactoryBean  -->
	<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="mapperLocations">
			<list>
				<value>classpath:com/config/DeptMapper.xml</value>						
			</list>		
		</property>
		<property name="typeAliases">
			<list>
				<value>com.dto.DeptDTO</value>				
			</list>		
		</property>
	</bean>		
	
	
	
	<!-- 4. SqlSessionTemplate : SqlSession기능 -->
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg name="sqlSessionFactory" ref="sessionFactory"></constructor-arg>
	</bean>
	<!-- 종료 -->

 

 

servlet-context.xml

<annotation-driven />

	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
	<resources mapping="/resources/**" location="/resources/" />

	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<context:component-scan base-package="com.*" />

'Daily Codig Reminder' 카테고리의 다른 글

list, map, @Autowired  (1) 2024.02.28
springboot  (1) 2024.02.28
@Reponsebody ,mybatis  (0) 2024.02.16
handler, response, json  (0) 2024.02.16
parameter, session  (0) 2024.02.16