본문 바로가기
스마트인재개발원/Spring

[Spring] DB연결 최종 코드들

by 죠졍니 2022. 10. 20.
728x90
반응형
SMALL

 

BoardMapper.xml

 

 

BoardController.java 수정

 

 

 


 

 

모든 코드 최종 

 

1. BoardController.java

 

package kr.smhrd.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import java.util.ArrayList;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import kr.smhrd.entity.Board;
import kr.smhrd.repository.BoardMapper;

@Controller
public class BoardController { //POJO

	//메서드
	//리스트 요청(list.do)을 처리하는 메서드 만들기(DI)
	@Autowired
	private BoardMapper mapper;
	
	@RequestMapping("/list.do")
	public String list(Model model) {
		
		
		List<Board> list = mapper.getList();
		model.addAttribute("list",list);

		
		return  "board/list"; //redirect, forward(JSP)
	}
	
	
}

 

 

2. Board.java

 

package kr.smhrd.entity;

import java.util.Date;

//게시판(Object) - > 번호, 제목, 내용, 작성자, 작성일, 조회수 ,,,, 
public class Board {
	private Long idx;
	private String title;
	private String content;
	private String writer;
	private Date indate; //Data -> Spring
	private Long count;
	
	//default생성자
	public Board() {};
	
	
	public Long getIdx() {
		return idx;
	}
	public void setIdx(Long idx) {
		this.idx = idx;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public Date getIndate() {
		return indate;
	}
	public void setIndate(Date indate) {
		this.indate = indate;
	}
	public Long getCount() {
		return count;
	}
	public void setCount(Long count) {
		this.count = count;
	}
	
	
	//toString()
	@Override
	public String toString() {
		return "Board [idx=" + idx + ", title=" + title + ", content=" + content + ", writer=" + writer + ", indate="
				+ indate + ", count=" + count + "]";
	}
	
	
	
}

 

3. BoardMapper.java

 

package kr.smhrd.repository;
//JDBC API(CRUD) -> 생산성이 떨어진다, 유지보수하기 어렵다(Java+SQL) 
//-> MyBatis Framework : Java <---분리개발(mapping)---> SQL(xml)

//http://mybatis.org

import java.util.List;

import kr.smhrd.entity.Board;

public interface BoardMapper {
	
	//전체리스트를 가져오는 메서드
	public List<Board> getList();
	
}

 

3. root-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
	<!-- DB연결작업 -->	
	<!-- <bean id="a" class="A"/>  
	      = 
	      A a = new A()   -->
	      
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>   
       <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/com"/>
       <property name="username" value="com"/>
       <property name="password" value="com01"/>   
   </bean>
   <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
     <constructor-arg ref="hikariConfig"/>  
   </bean>
   
   <bean class="org.mybatis.spring.SqlSessionFactoryBean">
     <property name="dataSource" ref="dataSource"/>
   </bean>
   <!-- SqlSessionFactoryBean의 인터페이스(Mapper)를 설정(Scan) -->
   <mybatis-spring:scan base-package="kr.smhrd.repository"/>   
		
</beans>

 

 

5. BoardMapper.xml

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.smhrd.repository.BoardMapper">
  
  <!-- board table 모든 게시물을 가져오는 SQL -->
  <select id="getList" resultType = "kr.smhrd.entity.Board">
	  select * from board order by idx desc
  </select>
  
</mapper>

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST