IBatis.net 사용 집계
8626 단어 ibatis
IBatis 소개
IBatis.net 는 오픈 소스 의 Orm 프레임 워 크 로 자바 의 IBatis 프로젝트 에서 진 화 된 C\#기반 Orm 프레임 워 크 라 고 할 수 있 습 니 다.
공식 홈 페이지:http://www.mybatis.org/
프로젝트 다운로드 주소:http://code.google.com/p/mybatisnet/
IBatis 사용
1),프로필:providers.config-데이터베이스 공급 자의 프로필 은 주로 사용 하 는 데이터베이스 형식 을 설정 하 는 데 사 용 됩 니 다.SqlMap.config:입구 파일 을 설정 하고 가리 키 는 데이터 공급 자 파일 과 각종 sql 맵 파일 을 설정 합 니 다.설정 파일 이름 은 스스로 설정 할 수 있 습 니 다(SqlMap.Config 는 기본 설정 파일 이름 입 니 다).
2)、설정 파일 의 초기 화:
public class MyMapper
{
public static string DbMapperFile = @"ConfigFile\SqlMap.config"; ///
private static object mLock = new object();
private static volatile ISqlMapper _mapper = null;
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
public static void Configure(object obj)
{
_mapper = null;
}
public static ISqlMapper SqlMapper
{
get
{
if (_mapper == null)
{
lock (mLock)
{
if (_mapper == null)
{
ConfigureHandler handler = new ConfigureHandler(Configure);
DomSqlMapBuilder builder = new DomSqlMapBuilder();
_mapper = builder.ConfigureAndWatch(DbMapperFile, handler); // , :builder.Configure();
}
}
}
return _mapper;
}
}
}
Dal'작업 기본 클래스 초기 화:
/// <summary>
/// Dal
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract class BaseDal<T> where T : class
{
protected ISqlMapper sqlMapper = null;
public BaseDal()
{
sqlMapper = HisMapper.SqlMapper;
}
public BaseDal(string configFile)
{
MyMapper.DbMapperFile = configFile;
sqlMapper = MyMapper.SqlMapper;
}
/// <summary>
/// , Object
/// </summary>
/// <param name="statement"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public object Add(string statement, object parameters)
{
return sqlMapper.Insert(statement, parameters);
}
/// <summary>
///
/// </summary>
/// <param name="statement"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public int Delete(string statement, object parameters)
{
return sqlMapper.Delete(statement, parameters);
}
/// <summary>
///
/// </summary>
/// <param name="statement"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public int Update(string statement, object parameters)
{
return sqlMapper.Update(statement, parameters);
}
/// <summary>
///
/// </summary>
/// <param name="statement"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public IList<T> QueryForList(string statement, object parameters)
{
return sqlMapper.QueryForList<T>(statement, parameters);
}
/// <summary>
///
/// </summary>
/// <param name="statement"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public object QueryForObj(string statement, object parameters)
{
return sqlMapper.QueryForObject(statement, parameters);
}
}
3)、실체 Orm 조작 실현:
1.실체 클래스 를 만 들 고 실체 대응 필드 의 정 의 를 포함 합 니 다(약)
2.대응 하 는 Xml 맵 파일 을 만 듭 니 다.예 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace="MyBatis3Sample.Model" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<alias>
<typeAlias alias="Customer" type="MySample.Model.Customer, MySample.Model" />
</alias>
<!--Mapping Class To Sql Realation Teable-->
<resultMaps>
<resultMap id="CustomerResult" class="Customer">
<result property="CustomerId" column="CustomerId"/>
<result property="FirstName" column="FirstName"/>
<result property="LastName" column="LastName"/>
</resultMap>
</resultMaps>
<!--Mapping The SQl StateMent about CRUD chenkai-->
<statements>
<insert id="New_Customer" parameterClass="Customer">
<![CDATA[INSERT INTO tbCustomer
( FirstName ,
LastName
)
VALUES ( #FirstName# , #LastName# )]]>
</insert>
<update id="Update_CustomerById">
<![CDATA[
update tbCustomer set FirstName=#FirstName#,SecondName=#SecondName#
where CustomerId=#CustomerId#
]]>
</update>
<select id ="Select_All_Customer" resultMap="CustomerResult">
<![CDATA[
select CustomerId,FirstName,LastName from tbCustomer
]]>
</select>
<select id="Select_CustomerById" extends="Select_All_Customer" resultMap="CustomerResult">
<![CDATA[
where CustomerId=#CustomerId#
]]>
</select>
<select id="Select_CustomerByNamePrefix" extends="Select_All_Customer" resultMap="CustomerResult">
<dynamic prepend=" where ">
<isNotEmpty prepend =" and ">
FirstName like '$FirstNamePrefix$%'
</isNotEmpty>
<isNotEmpty prepend =" and ">
LastName like '$LastNamePrefix$%'
</isNotEmpty>
</dynamic>
</select>
<select id="Select_CustomerTotalCount" resultClass="int">
<![CDATA[
select count(CustomerId) from tbCustomer
]]>
</select>
</statements>
</sqlMap>
분해:
a.
b.
c."\#First Name\#"에서 First Name 은 전달 하 는 매개 변수 입 니 다.IBatis 는 그 유형 을 자동 으로 해석 합 니 다."$First Name Prefix$%"는 모호 한 조회 시 매개 변 수 를 작성 하 는 방식 이 고 매개 변 수 를 연결 하 는 방식 으로 도 이 루어 집 니 다.매개 변 수 는 전달 할 때 대소 문자 가 민감 하 므 로 주의해 야 합 니 다.
d.
e.각 statement 의 Id 는 하나 여야 합 니 다.중복 이 있어 서 는 안 됩 니 다.같은 항목 의 다른 xml 설정 에서 도 현재 statement 의 Id 와 일치 하 는 statement 이 존재 해 서 는 안 됩 니 다.그렇지 않 으 면 오 류 를 보고 할 수 있 습 니 다.ibatis 에서 설정 읽 기 를 할 때 각 statement 을 불 러 옵 니 다.statement 의 id 는 1 이 어야 합 니 다.
f.statement 에서 resultMap 과 resultClass 의 차 이 를 설정 합 니 다.resultMap 과 resultClass 를 설정 하지 않 으 면 기본적으로 object 형식 으로 돌아 갑 니 다.resultMap 은 일반적으로 대응 하 는 맵 설정 에 설정 합 니 다.resultClass 는 일반적으로 지정 한 형식,예 를 들 어 string/object 등 을 가리 키 는 데 사 용 됩 니 다.
g、 는@과 유사 합 니 다."문 구 를 전의 하지 않 음 으로 표시 합 니 다.
총결산
Ibatis 를 사용 한 지 오래 되 었 습 니 다.sql 기반 으로 작 성 된 실현 감 이 좋 습 니 다.
일부 도움말 파일 을 첨부 하면 예 코드 는 업로드 되 지 않 습 니 다.실현 되 는 부분 이 간단 하고 명확 하 게 측정 되 지 않 았 기 때 문 입 니 다.
Mapper 프롬프트 파일
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.