티스토리 뷰

Spring

Java, Mybatis, Oracle 연동 코드

0307kjb 2022. 5. 29. 17:24

application.properties

# h2 #
spring.datasource.url=jdbc:h2:~/testdb
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver


# MyBatis #
mybatis.mapper-locations: classpath:mappers/**/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.type-aliases-package=com.example.demo.rest.domain

 

 

application.yml

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:

---

spring:
  datasource:
    url: jdbc:oracle:thin:@127.0.0.1/oracle
    username: system
    password: 1234
    driver-class-name: oracle.jdbc.driver.OracleDriver

---

mybatis:
 mapper-locations: classpath:mappers/**/*.xml
 type-aliases-package: com.example.demo.rest.domain
 configuration: 
  map-underscore-to-camel-case: true

 

 

연동 코드)

package com.example.demo.sqlconnection;
import java.sql.*;
public class SqlConnection {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {

		Class.forName("oracle.jdbc.OracleDriver");

		Connection conn =  DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1/oracle", "system", "1234");
		System.out.println("연결 성공");
		System.out.println(conn.isClosed()?"접속종료":"접속중");
		String sql = "select * from member";
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(sql);
        while (rs.next()) {
            long id = rs.getLong("MEMBER_ID");
            String name = rs.getString("name");
            System.out.println(id + " " + name);
        }
            conn.close();
        
	}
}

 

MemberDAO

package com.example.demo.rest.domain;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;

@Data
@JsonAutoDetect(fieldVisibility = Visibility.ANY) // private -> json
@NoArgsConstructor
@RequiredArgsConstructor
public class Member {
    private Long memberId;
    @NonNull private String userId;
    @NonNull private String name;
    @NonNull private String password;
}

 

Controller

package com.example.demo.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.rest.domain.Member;
import com.example.demo.rest.repository.MemberMapper;

@RestController
public class MemberController {

	@Autowired
	private MemberMapper memberMapper;
	
	@RequestMapping("/members")
    public List<Member> findAll(Member member){
        return memberMapper.findAll();
    }
}

 

Mapper Interface

package com.example.demo.rest.repository;

import java.util.List;
import org.apache.ibatis.annotations.Mapper;

import com.example.demo.rest.domain.Member;

@Mapper
public interface MemberMapper { 
    public List<Member> findAll(); 
}

 

Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.demo.rest.repository.MemberMapper">

    <insert id="save" parameterType="Member" useGeneratedKeys="true" keyProperty="memberId">
        INSERT INTO MEMBER (
                user_id
             , name
             , password
        ) values (
               #{userId}
             , #{name}
             , #{password})
    </insert>

    <select id="findOneById" resultType="Member" parameterType="Member">
        SELECT *
          FROM member
         WHERE member_id = #{memberId}
    </select>

    <select id="findAll" resultType="Member">
        SELECT *
          FROM member
    </select>
</mapper>

 

'Spring' 카테고리의 다른 글

JDBC  (0) 2023.05.14
연관 관계  (0) 2022.05.30
Spring - <JSON> data patch  (0) 2022.01.22
Spring - Exception  (0) 2022.01.21
Spring - Validation  (0) 2022.01.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함