오늘의 예제는 JAVA 스프링에서 기본적으로 제공하는 방법을 활용하여 MySQL에 접속하여 DB를 출력하는 방법을 알아보겠습니다. 파일 구조는 아래와 같습니다. Spring 구조를 설명하고 진행을 해야 될 것 같은데 일단은 맛보기로 예제만 보여드리고 추후에 다시 spring에 대해서 설명하도록 하겠습니다. SQL은 기존의 sangdata를 사용하도록 하겠습니다. 파일 구조는 아래와 같습니다.
|
<파일명 : DbMain.java >
package pack;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DbMain {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("init.xml");
BusinessInter inter =
(BusinessInter)context.getBean("businessImpl");
inter.dataList();
}
}
<파일명 : BusinessImpl.java >
package pack;
public class BusinessImpl implements BusinessInter{
private SangpumInter sangpumInter;
public void setSangpumInter(SangpumInter sangpumInter) {
this.sangpumInter = sangpumInter;
}
@Override
public void dataList() {
for(SangpumDto s:sangpumInter.selectList()) {
System.out.println(s.getCode() + " " +
s.getSang() + " " +
s.getSu() + " " +
s.getDan());
}
}
}
<파일명 : BusinessInter.java >
package pack;
public interface BusinessInter {
void dataList();
}
<파일명 : DataSource.java >
package pack;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class DataSource extends DriverManagerDataSource{
public DataSource() {
setDriverClassName("org.mariadb.jdbc.Driver");
setUsername("root");
setPassword("123");
}
}
<파일명 : SangpumDto.java >
package pack;
public class SangpumDto {
private String code,sang,su,dan;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getSang() {
return sang;
}
public void setSang(String sang) {
this.sang = sang;
}
public String getSu() {
return su;
}
public void setSu(String su) {
this.su = su;
}
public String getDan() {
return dan;
}
public void setDan(String dan) {
this.dan = dan;
}
}
<파일명 : SangpumImpl.java >
package pack;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
//스프링이 제공하는 JDBC 방법
public class SangpumImpl extends JdbcDaoSupport implements SangpumInter{
public SangpumImpl(DataSource dataSource) {
super.setDataSource(dataSource);
}
@Override
public List<SangpumDto> selectList() throws DataAccessException {
RowMapper rowMapper = new SangRowMapper();
return getJdbcTemplate()
.query("select * from sangdata", rowMapper);
}
class SangRowMapper implements RowMapper{
@Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
// select 실행결과를 한 레코드 단위로 전달받아 처리
System.out.println("rowNum : " + rowNum);
SangpumDto dto = new SangpumDto();
dto.setCode(rs.getString("code"));
dto.setSang(rs.getString("sang"));
dto.setSu(rs.getString("su"));
dto.setDan(rs.getString("dan"));
return dto;
}
}
}
<파일명 : SangpumInter.java >
package pack;
import java.util.List;
import org.springframework.dao.DataAccessException;
public interface SangpumInter {
List<SangpumDto> selectList() throws DataAccessException;
}
<파일명 : init.xml >
<?xml version="1.0" encoding="UTF-8"?>
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!--
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>org.mariadb.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/test</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>123</value>
</property>
</bean>
<bean id="sangpumImpl" class="pack.SangpumImpl">
<property name="dataSource" ref="ds" />
</bean>
-->
<!-- DataSource에서 불러오는 방법도 사용 가능 -->
<bean id="ds" class="pack.DataSource"/>
<bean id="sangpumImpl" class="pack.SangpumImpl">
<constructor-arg ref="ds"/>
</bean>
<bean id="businessImpl" class="pack.BusinessImpl">
<property name="sangpumInter" ref="sangpumImpl"/>
</bean>
</beans>
|
[ 결과 이미지]
|
Spring - 스프링을 사용한 웹 출력 예제 (0) | 2018.04.03 |
---|---|
Spring - AOP 개념을 활용한 db 출력 (0) | 2018.04.03 |
Spring - MyBatis를 활용한 db 출력 (0) | 2018.04.03 |
Spring - DB 출력하기 예제 (0) | 2018.03.30 |
JSP - 모델1 방식으로 쇼핑몰 만들기(상품 리스트 구현) #4 (2) | 2018.03.29 |
팀프로젝트에서 제가 맡았던 코드 공유합니다 (0) | 2018.03.29 |
JSP - MVC 패턴 예제 (0) | 2018.03.26 |
댓글 영역