ALCL_JDBC
μλ‘νν΄λμ€κ° λ§λ JDBC μ νΈλ¦¬ν° λΌμ΄λΈλ¬λ¦¬
alcl-jdbc
CRUD λ° λ°μ΄ν° μ²λ¦¬λ₯Ό μλμΌλ‘ μ μ©ν΄μ£Όλ λΌμ΄λΈλ¬λ¦¬
λ°μ΄ν° μμ€ μ€μ
db.properties
db.url=jdbc:mysql://127.0.0.1:3306/aloha?serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true&useSSL=false
db.username=aloha
db.password=123456
mapUnderscoreToCamelCase=true
mapCamelCaseToUnderscore=true
autoCommit=true
sqlLog=true
Plain Text
볡μ¬
μ¬μ©λ²
1. Entity ν΄λμ€ μμ±
@Tableκ³Ό @Pk μ΄λ
Έν
μ΄μ
μ μ¬μ©νμ¬ μν°ν° ν΄λμ€λ₯Ό μ μν©λλ€.
Lombokμ ν¨κ» μ¬μ©νλ©΄ νΈλ¦¬ν©λλ€.
β’
@Table("board") : μ΄ ν΄λμ€κ° λ§€νλλ DB ν
μ΄λΈλͺ
μ§μ
β’
@Pk : κΈ°λ³Έ ν€ νλ μ§μ
β’
@Column(exist = false) : DBμ 컬λΌμ΄ μ‘΄μ¬νμ§ μλ νλλ₯Ό λνλ (μ: λΉμ¦λμ€ λ‘μ§μ© μμ νλ)
@Table("board")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Board {
@Pk
private Long no;
private String id;
private String title;
private String writer;
private String content;
private Date createdAt;
private Date updatedAt;
@Column(exist = false) // μ€μ DB 컬λΌμ μλ λ³μ
private String test;
}
Java
볡μ¬
2. DAO ν΄λμ€ μμ±
BaseDAOImpl<T>λ₯Ό μμλ°μ DAO ν΄λμ€λ₯Ό μμ±νλ©΄ CRUD κΈ°λ₯μ΄ μλμΌλ‘ μ 곡λ©λλ€.
package DAO;
import com.alohaclass.jdbc.dao.BaseDAOImpl;
import DTO.Board;
public class BoardDAO extends BaseDAOImpl<Board> {
// νμ μ λ©μλ μ€λ²λΌμ΄λ κ°λ₯
}
Java
볡μ¬
3. DAO μ¬μ© μμ
BoardDAO boardDAO = new BoardDAO();
// INSERT
Board newBoard = Board.builder()
.id("testuser")
.title("μ λͺ©μ
λλ€")
.writer("μμ±μ")
.content("λ΄μ©μ
λλ€")
.createdAt(new Date())
.updatedAt(new Date())
.build();
boardDAO.insert(newBoard);
// SELECT
Board board = boardDAO.select(1L);
// UPDATE
board.setTitle("μμ λ μ λͺ©");
boardDAO.update(board);
// DELETE
boardDAO.delete(board);
Java
볡μ¬
4. κΈ°ν κΈ°λ₯ (BaseDAO μΈν°νμ΄μ€ κΈ°μ€)
λ©μλ | μ€λͺ
|
list() | μ 체 λͺ©λ‘ μ‘°ν |
listBy(Map<String, Object> fields) | νΉμ 쑰건 λͺ©λ‘ μ‘°ν |
page() λ° page(...) (μ€λ²λ‘λ©) | νμ΄μ§ μ²λ¦¬ λͺ©λ‘ μ‘°ν |
select(Object pk) | κΈ°λ³Έν€λ‘ μ‘°ν |
selectBy(Map<String, Object> fields) | 쑰건 κΈ°λ° λ¨κ±΄ μ‘°ν |
insert(T entity) | μν°ν° μ μ₯ (null μ μΈ) |
insertKey(T entity) | μ μ₯ ν PK κ° λ°ν |
update(T entity) | μ 체 νλ μ
λ°μ΄νΈ |
update(T entity, String... fields) | μΌλΆ νλ μ
λ°μ΄νΈ |
delete(Object pk) | PK κΈ°λ° μμ |
deleteBy(Map<String, Object> fields) | 쑰건 κΈ°λ° μμ |
in(String col, List<String> values) | IN 쑰건 λͺ©λ‘ μ‘°ν |
count() | μ 체 λ μ½λ μ λ°ν |
count(String keyword, List<String> searchOptions) | κ²μ 쑰건 κ°μ |
getSearchOptions(List<String> searchOptions) | LIKE κ²μ 쿼리 μμ± |
getFilterOptions(Map<String, String> filterOptions) | ORDER BY μμ± |
5. μ£Όμ μ¬ν
β’
@Pkλ λ°λμ ν κ°λ§ μ μΈν΄μΌ ν©λλ€.
β’
@Table μ΄λ¦μ μ€μ DB ν
μ΄λΈ μ΄λ¦κ³Ό μΌμΉν΄μΌ ν©λλ€.
β’
λ μ§ νλ(Date)λ java.sql.Date λλ java.util.Date λͺ¨λ μ§μν©λλ€.
β’
BaseDAO<T>λ₯Ό μ§μ ꡬννκ±°λ νμ₯ν μ μμ΅λλ€. 쿼리 μ΅μ ν λλ νΉλ³ν μ‘°κ±΄μ΄ νμν κ²½μ° μ€λ²λΌμ΄λ©νμ¬ μ¬μ©νμΈμ.