Giter VIP home page Giter VIP logo

jdbc's Introduction

도서명 - 자바 웹 개발 워크북
IDE - IntelliJ IDEA 2022.3.3 (Ultimate Edition)
자바 버전 - JDK 11
웹 서버 - 톰캣 9.0.73
DB - MariaDB 10.5(x64)
SQL 툴 - HeidiSQL 11.3.0.6295

  1. JDBC 프로그래밍을 위한 API
  • java.sql.connection : db와 네트워크상의 연결,작업 후에는 반드시 close()로 연결 종료 해야 한다.
  • java.sql.Statement/PreparedStatement : SQL을 db로 보내기
  • Statement : SQL 내부에 모든 데이터를 같이 전송하는 방식
  • PreparedStatement : SQL을 먼저 전달 후 데이터 전송하는 방식
  • executeUpdate() : DML 실행하과 결과를 int 타입으로 반환한다.
  • executeQuery() : 쿼리를 실행할 때 사용, ResultSet 타입으로 리턴 받는다.
  • java.sql.ResultSet : 네트워크를 통해 데이터를 읽어들이기에 작업후 close()로 연결 종료
  • Connection pool : 미리 Connection 객체를 생성해서 보관하고 필요할 때마 쓰는 방식
  • javax.sql.DataSource : Connection pool을 자바에서 API 형태로 지원
  • DAO(Data Access Object) : 데이터를 전문으로 처리하는 객체
  • VO(Value Object) : 데이터를 객체 단위로 처리
  1. build.gradle 설정
dependencies {
    compileOnly('javax.servlet:javax.servlet-api:4.0.1')

    testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
    // https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
    implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.0.4'

    //Lombok 라이브러리 추가
    compileOnly 'org.projectlombok:lombok:1.18.26'
    annotationProcessor 'org.projectlombok:lombok:1.18.26'

    testCompileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.24'
    testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version:'1.18.24'

    implementation group: 'com.zaxxer', name: 'HikariCP', version: '5.0.0'

    // https://mvnrepository.com/artifact/org.modelmapper/modelmapper
    implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.0.0'

    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.17.2'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.2'
    implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.17.2'

    implementation group: 'jstl', name: 'jstl', version: '1.2'
}
}
  1. Lombok 의 @Cleanup 을 사용하면 try-catch 문을 생략하고, close()가 호출 되는 것을 보장한다.
public String getTime2() throws Exception {
    @Cleanup Connection connection = ConnectionUtil.INSTANCE.getConnection();
    @Cleanup PreparedStatement preparedStatement = connection.prepareStatement("select now()");
    @Cleanup ResultSet resultSet = preparedStatement.executeQuery();

    resultSet.next();

    String now = resultSet.getString(1);

    return now;
}
  1. log4j2.xml 설정(보안 이슈 해결 버전인 2.17.0 이상을 권장)
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config" status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

jdbc's People

Contributors

doomout avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.