免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
Spring+Ibatis處理1對(duì)1數(shù)據(jù)表的例子

數(shù)據(jù)庫(kù)結(jié)構(gòu)(mysql)

 

create table customerDetail(CustomerDetailId varchar(10primary key,DataDetail varchar(10));
create table customers(id varchar(10primary key,
                      firstname 
varchar(10),
                      lastname 
varchar(10),
                      customerDetail 
varchar(10),
                      customerGross 
varchar(10),
                      
foreign key (customerDetail) references  customerDetail(CustomerDetailId),
                      
foreign key (customerGross) references  customerDetail(CustomerDetailId));
insert into customerdetail values("1","detail1");
insert into customerdetail values("2","detail2");
insert into customerdetail values("3","detail3");
insert into customers values("1","firstname1","lastname1","1",null);
insert into customers values("2","firstname2","lastname2","2","3");

customer和customerDetail是1對(duì)1的關(guān)系
customer和customerGossIp是1對(duì)1的關(guān)系

 domain對(duì)象:

 

package ch10.SpringAndIbatisOneToOne;

import java.util.List;

public class Customers {
   
private String customerId;
   
private String firstName;
   
private String lastName;
   
private CustomerDetail customerDetail;
   
private CustomerDetail customerGossIp;
public CustomerDetail getCustomerDetail() {
    
return customerDetail;
}

public void setCustomerDetail(CustomerDetail customerDetail) {
    
this.customerDetail = customerDetail;
}

public CustomerDetail getCustomerGossIp() {
    
return customerGossIp;
}

public void setCustomerGossIp(CustomerDetail customerGossIp) {
    
this.customerGossIp = customerGossIp;
}

public String getCustomerId() {
    
return customerId;
}

public void setCustomerId(String customerId) {
    
this.customerId = customerId;
}

public String getFirstName() {
    
return firstName;
}

public void setFirstName(String firstName) {
    
this.firstName = firstName;
}

public String getLastName() {
    
return lastName;
}

public void setLastName(String lastName) {
    
this.lastName = lastName;
}



}



package ch10.SpringAndIbatisOneToOne;

public class CustomerDetail {
   
private String customerDetailId;
   
private String dataDetail;
public String getCustomerDetailId() {
    
return customerDetailId;
}

public void setCustomerDetailId(String customerDetailId) {
    
this.customerDetailId = customerDetailId;
}

public String getDataDetail() {
    
return dataDetail;
}

public void setDataDetail(String dataDetail) {
    
this.dataDetail = dataDetail;
}


}

 

DAO接口:

 

package ch10.SpringAndIbatisOneToOne;

import java.util.List;

public interface IDAO {
   
public Object getCustomersById(String id);
}

 

DAO實(shí)現(xiàn)類:

 

package ch10.SpringAndIbatisOneToOne;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class TestDAO extends SqlMapClientDaoSupport implements IDAO {

    
public Object getCustomersById(String id) {
    
        
return this.getSqlMapClientTemplate().queryForObject("getCustomerById",id);
    }

   

}

 

Ibatis配置文件:

 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE sqlMapConfig 
PUBLIC 
"-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
"http://www.ibatis.com/dtd/sql-map-config-2.dtd"> 
<sqlMapConfig> 

<sqlMap resource="ch10/SpringAndIbatisOneToOne/Ibatis.xml" /> 

</sqlMapConfig>

 

ibatis sql map文件:

 

<?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 type="ch10.SpringAndIbatisOneToOne.Customers" alias="customer"/>
    
<typeAlias type="ch10.SpringAndIbatisOneToOne.CustomerDetail" alias="customerDetail"/>
    
    
<!-- 定義基本的resultMap -->
    
<resultMap class="customer" id="result">
      
<result property="customerId" column="CustomerId"/>
      
<result property="firstName" column="FirstName"/>
      
<result property="lastName" column="LastName"/>
    
</resultMap>
    
    
<resultMap class="customerDetail" id="gossipDetail">
      
<result property="customerDetailId" column="CustomerDetailId"/>
      
<result property="dataDetail" column="DataDetail"/>
    
</resultMap>
    
    
    
<!-- 使用如下這種集成關(guān)系的好處是我們可以只返回我們需要的數(shù)據(jù),而不是總返回全部數(shù)據(jù)
         比如我們只關(guān)心customer,而不關(guān)心他其中的customerDetail和customerGossIp,那我們之用
         名為result的resultMap就可以了 
--> 
    
    
<!-- 定義符合resultMap,這種配置表明了customer的customerDetail不能為空,而customerGross可以為空 >-->
    
<resultMap class="customer" id="resultDetail" extends="result">
       
<result property="customerDetail.customerDetailId" column="CustomerDetailID"/>
       
<result property="customerDetail.dataDetail" column="DataDetail"/>
        
<result property="customerGossIp" column="CustomerGossIp" select="getCustomerGossById"/> 
    
</resultMap>
    
    
    
<select id="getCustomerGossById" resultMap="gossipDetail" parameterClass="string">
         select CustomerDetailId,DataDetail from CustomerDetail where CustomerDetailId=#value#     
    
</select>
    
    
<!-- 根據(jù)customerid獲得Customer-->

   
    
<select id="getCustomerById" resultMap="resultDetail" parameterClass="string">
     select c.CustomerId as CustomerId,
              c.FirstName as FirstName,
              c.LastName as LastName,
              c.CustomerDetail as CustomerDetail,
              c.CustomerGossIp as CustomerGossIp,
              cd.CustomerDetailID as CustomerDetailID,
              cd.Datadetail as DataDetail
      from customers c 
      inner join customerdetail cd  on c.CustomerDetail=cd.CustomerDetailId 
      where c.CustomerId=#value#
    
</select>
</sqlMap>

 

spring配置文件

如果要使用1對(duì)1,1對(duì)多這樣牽扯兩個(gè)表的情況,一定要為SqlMapClientFactoryBean設(shè)置dataSource屬性

 

<?xml version="1.0" encoding="UTF-8"?>
<beans
    
xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  
<property name="driverClassName">
    
<value>com.mysql.jdbc.Driver</value>
  
</property>
  
<property name="username">
    
<value>root</value>
  
</property>
  
<property name="password">
    
<value>1234</value>
  
</property>
  
<property name="url">
    
<value>jdbc:mysql://localhost:3306/spring</value>
  
</property>
</bean>

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  
<!-- 此處應(yīng)注入ibatis配置文件,而非sqlMap文件,否則會(huì)出現(xiàn)“there is no statement.....異常” -->
  
<property name="configLocation">
     
<value>ch10/SpringAndIbatisOneToOne/sqlMapConfig.xml</value>
  
</property>
    
<property name="dataSource">
   
<ref bean="dataSource"/>
 
</property>

</bean>

<bean id="testDAO" class="ch10.SpringAndIbatisOneToOne.TestDAO">
   
<property name="dataSource">
   
<ref bean="dataSource"/>
 
</property>
  
<property name="sqlMapClient">
    
<ref bean="sqlMapClient"/>
  
</property>
</bean>

</beans>

 

測(cè)試代碼:

 

package ch10.SpringAndIbatisOneToOne;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import ch10.SpringAndIbatis.Ibatis;

public class Test {

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
        ApplicationContext context
=new ClassPathXmlApplicationContext("ch10/SpringAndIbatisOneToOne/applicationContext.xml");
        TestDAO testDAOImpl
=(TestDAO)context.getBean("testDAO");

        Customers result1
=(Customers)testDAOImpl.getCustomersById("1");
    
        Customers result2
=(Customers)testDAOImpl.getCustomersById("2");
        
    
      
         System.out.println(result1.getFirstName()
+"-"+result1.getLastName()+"-"+result1.getCustomerDetail().getDataDetail()+"-"+result1.getCustomerGossIp().getDataDetail());
      
         System.out.println(
"-----------------");
      
         System.out.println(result2.getFirstName()
+"-"+result2.getLastName()+"-"+result2.getCustomerDetail().getDataDetail()+"-"+result2.getCustomerGossIp().getDataDetail());
        
    }


}

 

結(jié)果:

firstname1-lastname1-detail1-detail2
-----------------
firstname2-lastname2-detail2-detail3

from:http://blog.csdn.net/daryl715/archive/2007/08/28/1762439.aspx

 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ibatis 開(kāi)始之旅
IbatisNet開(kāi)發(fā)使用小結(jié) 之一
iBATIS.net常用的查詢方式淺析(轉(zhuǎn))
一個(gè)使用ibatis對(duì)數(shù)據(jù)庫(kù)增刪改查的例子
【Entity Framework Code First教程】約定配置
Spring Data JPA 簡(jiǎn)單介紹
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服