반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- sql
- 코드잇
- mysql
- html
- 리액트프로젝트
- SpringFramework
- 웹개발
- msa개념
- job
- C
- two pointers
- coding test
- Programming
- BCIT
- 자바
- jvm메모리구조
- 밤비노
- Java
- 웹개발기초
- MVC
- 웹개발자
- Bambino
- DB
- CSS
- microservices
- MSA
- servlet
- 안드로이드
- 데이터베이스
- jsp
Archives
- Today
- Total
초보 개발자의 기록
MVC패턴이용한 어플리케이션 개발(2) 본문
728x90
new할 때마다 instance가 여러개 만들어짐 (sqlSessionFactory 다수가 메모리에 올라옴 =메모리누수)
singleton이용 (instance)
new하지않고 접근하려면 static이용
MybatisConfigManager.java
package com.practice.mybatis.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 MybatisConfigManager {
String resource = "com/practice/mybatis/config/config.xml";
InputStream inputStream;
SqlSessionFactory sqlSessionFactory;
private static MybatisConfigManager instance;
private MybatisConfigManager() {
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
public static MybatisConfigManager getInstance() {
if(instance == null) {
instance = new MybatisConfigManager(); //나의 생성자는 내가 호출가능
}
return instance;
}
//SqlSession을 반환하는 메서드
public SqlSession getSqlSession() {
SqlSession sqlSession= null;
sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
public void close(SqlSession sqlSession) {
if(sqlSession!=null) {
sqlSession.close();
}
}
}
쿼리문 들어간 xml필요
resultType : select문 실행결과를 담을 객체
resultMap : select문 실행결과를 담을 객체를 resultMap으로 지정 <resultMap>선언해줘야함
parameterType : 이 속성에 지정한 객체의 프로퍼티(#{프로퍼티}) 값이 SQL문의 입력 파라미터에 지정됨
<select>, <insert>, <update>, <delete>
config.xml
Alias 설정
<?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>
<typeAliases>
<typeAlias type="com.practice.board.model.Notice"
alias="Notice" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="JNDI">
<property name="data_source" value="java:comp/env/jdbc/mariadb"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/practice/mybatis/mapper/NoticeMapper.xml"/>
</mappers>
</configuration>
MVC ?
M odel : 로직, 데이터 자체를 의미
V : 디자인, jsp
C
jsp나 servlet 둘다 웹서버에서 해석 및 실행되어지므로, 글 등록 요청을 처리할 때는 둘다 가능
앞으로 jsp는 서블릿의 디자인적 처리시 단점을 보완하기 위해 개발된 기술로, jsp는 주로 디자인 영역에서 사용
RegistServlet.java
728x90
반응형
'JAVA > MVC pattern' 카테고리의 다른 글
개발방식(3)-Model 2 (MVC pattern) (0) | 2020.12.18 |
---|---|
개발방식(2)-Model 1 (0) | 2020.12.18 |
개발방식(1)-스크립트기반 개발방식 (0) | 2020.12.18 |
MVC패턴이용한 어플리케이션 개발(1) (0) | 2020.12.16 |