ibatis 일대다 예시
6709 단어 ibatis
2. 데이터베이스 테이블 구축,user표와address표, 테이블 작성 문장은 다음과 같다.(mysql 데이터베이스 사용)
create table user(
id int(10) not null auto_increment,
userName varchar(20) ,
passWord varchar(20),
primary key(id)
);
insert into user(userName,passWord) values('admin1','admin1');
insert into user(userName,passWord) values('admin2','admin2');
insert into user(userName,passWord) values('admin3','admin3');
insert into user(userName,passWord) values('admin4','admin4');
create table address(
user_id int(10) not null ,
addressName varchar(20) ,
addressCode varchar(20)
);
insert into address(user_id,addressName,addressCode) values(1,'addressName1','addressCode1');
insert into address(user_id,addressName,addressCode) values(1,'addressName2','addressCode2');
insert into address(user_id,addressName,addressCode) values(2,'addressName3','addressCode3');
insert into address(user_id,addressName,addressCode) values(3,'addressName4','addressCode4');
3. 해당되는 자바빈 생성
User.java
package com.tonyj.pojo;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
public class User {
private int id;
private String userName;
private Date expireDate=null;
private String passWord;
private List<Address> address=new ArrayList<Address>();
// getter setter ,
}
Address.java
package com.tonyj.pojo;
public class Address {
private String addressName;
private String addressCode;
private String user_id;
// getter setter ,
}
4.ibatis 프로필 설정
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="jdbc.properties"/>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="true"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driverClassName}"/>
<property name="JDBC.ConnectionURL" value="${jdbc.url}"/>
<property name="JDBC.Username" value="${jdbc.userName}"/>
<property name="JDBC.Password" value="${jdbc.password}"/>
</dataSource>
</transactionManager>
<sqlMap resource="one2many.xml"/>
</sqlMapConfig>
데이터베이스에 연결된 리소스 파일을 구성하려면 다음과 같이 하십시오.
jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/vin
jdbc.userName=root
jdbc.password=sa
한 쌍의 멀티캐스트 파일 원2many.xml 구성:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL MAP 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias="User" type="com.tonyj.pojo.User"/>
<typeAlias alias="Address" type="com.tonyj.pojo.Address"/>
<resultMap class="User" id="get-user-result">
<result property="id" column="id"/>
<result property="userName" column="userName"/>
<result property="passWord" column="passWord"/>
<result property="expireDate" column="expiredate" />
<result property="address" column="id" select="getAddressByUserId"/>
</resultMap>
<select id="getUser" parameterClass="int" resultMap="get-user-result">
<![CDATA[
select id,userName,passWord,expiredate
from user
where id=#id#
]]>
</select>
<select id="getAddressByUserId" parameterClass="int" resultClass="Address">
select user_id,addressName,addressCode
from address
where user_id=#user_id#
</select>
</sqlMap>
5. 테스트 클래스의 작성
IbatisOne2Many.java
package com.tonyj.test;
import java.io.Reader;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.tonyj.pojo.Address;
import com.tonyj.pojo.User;
public class IbatisOne2Many {
public static void main(String[] args) throws Exception {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
// sqlMap
User user=(User) sqlMap.queryForObject("getUser", new Integer(1));
System.out.println("user_id:"+user.getId()+",userName:"
+user.getUserName());
List<Address> addresss=user.getAddress();
for(int i=0;i<addresss.size();i++){
System.out.println(addresss.get(i).getUser_id()+"-->"
+addresss.get(i).getAddressName());
}
}
}
6. 실행 결과는 다음과 같다.
log4j:WARN No appenders could be found for logger (com.ibatis.common.jdbc.SimpleDataSource).
log4j:WARN Please initialize the log4j system properly.
user_id:1,userName:admin1
1-->addressName1
1-->addressName2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ibatis 예(二)다음 6개의 파일: User.java UserTest.java SqlMapConfig.xml User.xml log4j.properties t_user.sql 1. 우선 디렉터리 구조를 살펴보자. 2.t_user.s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.