[JDBC]Mybatis설정방법 및 적용예제2

Devel/JDBC|2020. 8. 20. 15:05
반응형
+예제
1.Mapper.xml 에 select 하나 더 추가 id = selsect 하나 더 추가
selectBydeptno resultType=??
select deptno, dname, loc from dept where deptno = 10

2. Main ->service->dao 에서 Mapper의 selectBydeptno 를 사용하는 함수 만들어 결과 메인에 리턴 받아 출력해 보기

-configuration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="tiger"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="DeptMapper.xml"/>
  </mappers>
</configuration>


-Dept class 구성
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.dto;
 
//  Dept테이블의 하나의 레코드 저장용도
public class Dept {
 
    private int deptno;
    private String dname;
    private String loc;
    public Dept() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Dept(int deptno, String dname, String loc) {
        super();
        this.deptno = deptno;
        this.dname = dname;
        this.loc = loc;
    }
    public int getDeptno() {
        return deptno;
    }
    public void setDeptno(int deptno) {
        this.deptno = deptno;
    }
    public String getDname() {
        return dname;
    }
    public void setDname(String dname) {
        this.dname = dname;
    }
    public String getLoc() {
        return loc;
    }
    public void setLoc(String loc) {
        this.loc = loc;
    }
    @Override
    public String toString() {
        return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]";
    }
    
    
    
    
    
}
 
-OracleMybatisDAO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.dao;
 
import java.util.List;
 
import org.apache.ibatis.session.SqlSession;
 
import com.dto.Dept;
 
public class OracleMybatisDAO {
 
    public List<Dept> selectAll(SqlSession session) {
        //<select id="selectAll"
        List<Dept>    list= session.selectList("selectAll"); 
        return list;
    }
    
    public List<Dept> selectBydeptno(SqlSession session) {
        //<select id="selectAll"
        List<Dept>    list= session.selectList("selectBydeptno");
        return list;
    }
 
}
 

1
2
3
4
5
public Dept selectBydeptno(SqlSession session) {
        //<select id="selectAll"
        Dept dept= session.selectOne("selectBydeptno");
        return dept;
    }



-OracleMyBatisService
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
32
33
34
35
36
37
38
39
40
41
42
43
package com.service;
 
import java.util.List;
 
import org.apache.ibatis.session.SqlSession;
 
import com.config.MySqlSessionFactory;
import com.dao.OracleMybatisDAO;
import com.dto.Dept;
 
public class OracleMyBatisService {
 
    OracleMybatisDAO dao;
    public OracleMyBatisService() {
        dao = new OracleMybatisDAO();
    }
    public List<Dept> select() {
        SqlSession session = MySqlSessionFactory.getSession();
        List<Dept> list = null;
        
        try {
            list = dao.selectAll(session);
        } finally {
            session.close();
        }
        return list;
    }// end class
 
    public List<Dept> selectBydeptno() {
        SqlSession session = MySqlSessionFactory.getSession();
        List<Dept> list = null;
        
        try {
            list = dao.selectBydeptno(session);
        } finally {
            session.close();
        }
        return list;
    }
    
    
}
 

1
2
3
4
5
6
7
8
9
10
11
public Dept selectBydeptno() {
        SqlSession session = MySqlSessionFactory.getSession();
        Dept dept = null;
        
        try {
            dept = dao.selectBydeptno(session);
        } finally {
            session.close();
        }
        return dept;
    }


-DeptMapper
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectAll" resultType = "com.dto.Dept">
select deptno, dname, loc from dept
</select>
<select id="selectBydeptno" resultType = "com.dto.Dept">
select deptno, dname, loc from dept where deptno = 10
</select>
</mapper>

-main
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
import java.util.List;
 
import com.dto.Dept;
import com.service.OracleMyBatisService;
 
public class OracleMyBatisMain {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        OracleMyBatisService service = new OracleMyBatisService();
        List<Dept> list = service.select();
        for(Dept dept : list) {
            System.out.println(list);
        }
        
        
        System.out.println("selectBydeptno");
        List<Dept> list1 = service.selectBydeptno();
        for(Dept dept : list1) {
            System.out.println(dept);
        }
    }
 
}
 





-
-dao
-service
-main



-매퍼설정 : Properties







-
1
2
3
4
5
#key = value
oracle.jdbc = oracle.jdbc.driver.OracleDriver
oracle.url = jdbc:oracle:thin:@localhost:1521:orcl
oracle.userid = scott
oracle.passwd =tiger
-Configuration
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
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
<configuration>
<!-- jdbc.jdbc.proproperties파일 등록 -->
<properties resource="jdbc.properties"/>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${oracle.jdbc}"/>
        <property name="url" value="${oracle.url}"/>
        <property name="username" value="${oracle.userid}"/>
          <property name="password" value="${oracle.passwd}"/>
        
 <!-- 기존사용하던 4가지 정보
 <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="tiger"/>  -->   
            
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="DeptMapper.xml"/>
  </mappers>
</configuration>
-OracleMybatisDAO
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
package com.dao;
 
import java.util.List;
 
import org.apache.ibatis.session.SqlSession;
 
import com.dto.Dept;
 
public class OracleMybatisDAO {
 
    public List<Dept> selectAll(SqlSession session) {
        //<select id="selectAll"
        List<Dept> list=  session.selectList("selectAll");
        
        return list;
    }
    
    public void insert(SqlSession session,Dept dept) {
        //<select id="selectAll"
        int num = session.insert("deptInsert",dept);
        System.out.println("추가된 레코드 ===="+ num);
        
        
    }
    
}

-DeptMapper
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectAll" resultType="com.dto.Dept">
select deptno, dname, loc from dept
</select>
<select id="deptInsert" parameterType ="com.dto.Dept">
insert into dept(deptno, dname, loc) values (#{deptno},#{dname},#{loc})
</select>
</mapper>

-OracleMyatisService
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.service;
 
import java.util.List;
 
import org.apache.ibatis.session.SqlSession;
 
import com.config.MySqlSessionFactory;
import com.dao.OracleMybatisDAO;
import com.dto.Dept;
 
public class OracleMyBatisService {
 
    OracleMybatisDAO dao;
    
    public OracleMyBatisService() {
        dao = new OracleMybatisDAO();
    }
    
    public List<Dept> select() {
        SqlSession session = MySqlSessionFactory.getSession();
        List<Dept> list = null;
         
        try {
            list = dao.selectAll(session);
        } finally {
            session.close();
        }
        return list;
        }
            
    public void insert(Dept dept) {
        //<select id="selectAll"
        SqlSession session = MySqlSessionFactory.getSession();
        
        try {
            dao.insert(session, dept);
        } finally {
            session.close();
            
        }
        
        
    }
    }// end class
 
 
 
 
-main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.List;
 
import com.dto.Dept;
import com.service.OracleMyBatisService;
 
public class OracleMyBatisMain {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        OracleMyBatisService service = new OracleMyBatisService();        
//        List <Dept> list =service.select();
//        for(Dept dept :list) {
//            System.out.println(dept);
//        }
        
        
        service.insert(new Dept(17,"김길동","제주"));
        
    }
 
}
 




댓글()
loading