1. Setter 일반적으로 객체 지향 프로그래밍에서는 외부에서 직접적으로 객체의 데이터에 접근하는 것을 막는다. 이는 객체의 데이터를 외부에서 마음대로 읽고 변경하는 경우 객체의 무결성이 깨질 수 있기 때문이다. 예를 들어, 어떤 데이터의 값은 항상 양수어야 하지만 외부에서 마음대로 작업한다면 음수로 만들어버릴 수도 있다. 이를 위해 우리는 setter라는 메서드를 사용한다. setter 메서드의 선언 방법은 아래와 같다. // 필드는 외부 접근을 막기 위해 private을 사용 private int intField; // Setter public void setIntField(int intField){ this.intField = intField; } 2. Getter 외부에서 데이터를 읽을 때 해당..
분류 전체보기
1. Final 필드 프로그램 작성시 이후 값을 변경하지 않을 필드들이 존재한다. 이런 경우 final을 사용한다. final을 붙인 필드들은 프로그램 실행 도중 수정이 불가능하다. 이때 해당 필드들을 초기화 하는 방법은 선언시 초기화 혹은 생성자에서 초기화로 총 2가지 방법이 존재한다. final String frontName="Coding"; final String name; public FinalExam (String lastName) { this.name=frontName+lastName; } 2. Static Final 필드 일반적으로 "불변의 값"을 "상수"라고 부른다. 하지만 final 필드는 상수가 될 수 없다. 왜냐하면 해당 값들은 객체마다 저장되기 때문에 객체마다 여러 값으로 초기화될 ..
Singleton의 정의 및 생성 방법 프로그램 실행시 단 하나의 객체만 만들도록 보장해야하는 경우가 존재한다. 이렇게 단 하나만 생성되는 객체를 Singleton이라고 부른다. 일반적으로 객체는 new 연산자를 통해 생성자가 호출되며 생성된다. 따라서 우리는 생성자가 호출되지 않도록 외부에서 new 생성자로 객체를 생성하지 못하도록 해야한다. 이 때문에 Singleton의 생성자는 외부에서 호출할 수 없도록 private 접근 제한자를 붙여줘야 한다. 그리고 어찌되었든 하나의 객체는 생성되어야 하므로 우리는 해당 객체를 해당 클래스 안에 private 접근 제한자로 정적(static)으로 선언한다. 이후 getInstance()라는 메서드를 선언하여 해당 객체를 외부 클래스에서 받을 수 있도록 해주면 ..
1. 정적 멤버 선언 정적 멤버는 클래스에 고정된 멤버로 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 이들을 각각 정적 필드, 정적 메소드라고 부르며 이들은 인스턴스에 속한 멤버가 아니기 때문에 클래스 멤버라고도 불린다. 정적 멤버는 아래 방벙으로 선언할 수 있다. public class StaticExam { // 정적 필드 선언: static [타입] [필드명] static double pi = 3.14; // 정적 메소드 선언: static [리턴 타입] [메소드 명] (매개변수...) {...} static double circleArea(int radius) { double area = pi*radius*radius; return area; } } 위와 같은 정적 멤버들은 인스..
1. Array 선언 Java의 배열 변수를 선언하기 위해서는 아래 두 방식 중 하나의 방법을 사용하면 된다. // 1. 타입[] 변수; int[] intArray; String[] strArray; // 2. 타입 변수[]; int intArray[]; String strArray[]; 변수 선언 시에는 값의 목록을 통해 배열을 초기화할 수 있다. 단, 변수 선언 이후에는 값의 목록을 이용한 배열 생성은 컴파일 에러가 발생한다. // 값의 목록을 통해 초기화 int[] intArray = {1, 2, 3}; // 컴파일 에러 int[] intArray; intArray = {1, 2, 3}; 변수 선언 혹은 이후에 배열을 생성하기 위해서는 new 연산자를 아래와 같이 사용할 수 있다. // 1. 값의 ..
BeanPropertyRowMapper BeanPropertyRowMapper를 사용하면 기존에 RowMapper 만드는 방식을 사용하지 않고 RowMapper를 바로 만들 수 있다. 기존에 RowMapper를 만드는 방식은 다음과 같이 mapping logic을 직접 작성해줘야 했다. private RowMapper roleMapper = new RowMapper() { @Override public Role mapRow(ResultSet rs, int rowNum) throws SQLException{ Role role = new Role(); role.setRoleId(rs.getInt("role_id")); role.setDescription(rs.getString("description")); ..
1. NamedParameterJdbcTemplate란? JdbcTemplate 객체를 사용하면 "?"를 통해 바인딩을 수행한다. 이때 우리는 "?"에 전달될 인자들을 메서드에 순서대로 전달해야 한다. 이와 같이 작업을 할 경우 가독성이 떨어지며 실수할 여지가 많다. 이를 위해 "?"대시 ":변수명"을 이용하여 처리하도록 해주는 것이 NamedParameterJdbcTemplate이다. 선언 방법은 JdbcTemplate 객체와 동일하게 DateSource 객체를 넘겨주면 된다. private NamedParameterJdbcTemplate namedJdbcTemplate; @Autowired public RoleDao(DataSource dataSource) { this.namedJdbcTemplate..
이전에 Jdbc Template이란 무엇이고 Query를 어떻게 전달하여 결과를 가져올 수 있는지 확인했다. https://ngp9440.tistory.com/54 [Spring JDBC] Jdbc Template이란? (queryForObject, query) 1. JDBC Template이란? JDBC Template은 개발자가 JDBC 기술을 쉽게 사용할 수 있도록 도와주는 클래스로 아래와 같은 작업을 대신 처리한다. Connection 획득 statement 생성 및 실행 Connection, statement, resultset 종 ngp9440.tistory.com 이번에는 Insert, Update, Delete는 어떻게 수행할 수 있는지에 대해 알아보고자 한다. 해당 쿼리들을 수행하기 위해..