[java] 일반 사본 보기
<span style="font-size:14px;"> My Batis 支持SQL查询,是一些高级映射在持久层的完美展示。他更多的使用简单的XML或注解用于配置和原始映射,<span style="color: rgb(54, 54, 54); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 24px; ">摒除了大量的JDBC代码、手工设置参数和结果集封装,提高了开发效率。</span></span>
MyBatis의 XML 구성 파일에는 MyBatis의 동작에 중대한 영향을 미치는 설정 및 속성 정보가 포함되어 있습니다. XML 문서의 상위 구조는 다음과 같습니다:
구성 구성
환경 환경 변수
transactionManager 트랜잭션 관리자
dataSource 데이터 source
속성
설정
typeAliases 유형 이름 지정
typeHandlers 유형 프로세서
objectFactory 개체 팩토리
플러그인
환경 환경
매퍼
다음은 각 속성 구성
속성
에 대한 자세한 소개입니다. 일반적인 Java 속성 구성 파일에서 구성되거나 속성 요소의 하위 요소를 통해 전달됩니다.
[html] view plain copy <properties resource="jdbc_mysql.properties" /> [html] view plain copy <dataSource type="POOLED"> [html] view plain copy <property name="driver" value="${driver}"/> [html] view plain copy <property name="url" value="${url}"/> [html] view plain copy <property name="username" value="${username}"/> [html] view plain copy <property name="password" value="${password}"/> [html] view plain copy </dataSource>이 예에서 사용자 이름과 비밀번호는 속성 요소에 설정된 값으로 대체됩니다. 드라이버 및 URL 속성은 포함된 jdbc_mysql.properties 파일의 값으로 대체됩니다. 설정
이는 MyBatis가 런타임에 동작하는 방식을 수정하는 매우 중요한 조정입니다. 다음 표에는 설정 정보, 해당 의미 및 기본값이 설명되어 있습니다.
<settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> <setting name="enhancementEnabled" value="false"/> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="defaultStatementTimeout" value="25000"/> </settings>typeAliases
유형 별칭은 Java 유형에 짧은 이름을 부여하는 것입니다. 이는 XML 구성에만 관련되며 정규화된 클래스 이름의 중복 부분을 줄이는 데만 사용됩니다. 예:
[html] view plain copy <typeAliases> [html] view plain copy <typeAlias alias="Author" type="domain.blog.Author"/> [html] view plain copy <typeAlias alias="Blog" type="domain.blog.Blog"/> [html] view plain copy <typeAlias alias="Comment" type="domain.blog.Comment"/> [html] view plain copy <typeAlias alias="Post" type="domain.blog.Post"/> [html] view plain copy <typeAlias alias="Section" type="domain.blog.Section"/> [html] view plain copy <typeAlias alias="Tag" type="domain.blog.Tag"/> [html] view plain copy </typeAliases>이 구성을 사용하면 "domain.blog.Blog"가 사용되는 모든 곳에서 "Blog"를 사용할 수 있습니다. typeHandlers
MyBatis가 준비된 명령문에 매개변수를 설정하든 결과 세트에서 값을 검색하든, 유형 핸들러는 획득된 값을 적절한 방식으로 Java 유형으로 변환하는 데 사용됩니다. 다음 목록에서는 기본 유형 처리기에 대해 설명합니다. 순서대로, 유형 핸들러 Java 유형 JDBC 유형
BooleanTypeHandler Boolean, boolean 호환되는 모든 부울 값
ShortTypeHandler Short , short ~ ~ 모두 호환되는 숫자 또는 긴
FloatTypeHandler Float,float 任何兼容的数字或单精度浮点型
DoubleTypeHandler Double,double 任何兼容的数字或双精度浮点型
BigDecimalTypeHandler BigDecimal 任何兼容的数字或十进制小数类型
StringTypeHandler String CHAR和VARCHAR类型
ClobTypeHandler String CLOB和LONGVARCHAR类型
NStringTypeHandler String NVARCHAR和NCHAR类型
NClobTypeHandler String NCLOB类型
ByteArrayTypeHandler byte[] 任何兼容的字节流类型
BlobTypeHandler byte[] BLOB和LONGVARBINARY类型
DateTypeHandler Date(java.util) TIMESTAMP类型
DateOnlyTypeHandler Date(java.util) DATE类型
TimeOnlyTypeHandler Date(java.util) TIME类型
SqlTimestampTypeHandler Timestamp(java.sql) TIMESTAMP类型
SqlDateTypeHandler Date(java.sql) DATE类型
SqlTimeTypeHandler Time(java.sql) TIME类型
ObjectTypeHandler Any 其他或未指定类型
EnumTypeHandler Enumeration类型 VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。
objectFactory
MyBatis每次创建结果对象新的实例时,它使用一个ObjectFactory实例来完成。如果参数映射存在,默认的ObjectFactory不比使用默认构造方法或带参数的构造方法实例化目标类做的工作多。
plugins
MyBatis允许你在某一点拦截已映射语句执行的调用。默认情况下,MyBatis允许使用插件来拦截方法调用:
Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandler (getParameterObject, setParameters) ResultSetHandler (handleResultSets, handleOutputParameters) StatementHandler
(prepare, parameterize, batch, update, query)
这些类中方法的详情可以通过查看每个方法的签名来发现,而且它们的源代码在MyBatis的发行包中有。你应该理解你覆盖方法的行为,假设你所做的要比监视调用要多。如果你尝试修改或覆盖一个给定的方法,你可能会打破MyBatis的核心。这是低层次的类和方法,要谨慎使用插件。
使用插件是它们提供的非常简单的力量。简单实现拦截器接口,要确定你想拦截的指定签名。
java代码:
[javascript] view plain copy @Intercepts({@Signature(type= Executor.class,method = "update", [javascript] view plain copy args = {MappedStatement.class,Object.class})}) [javascript] view plain copy public class ExamplePlugin implements Interceptor { [javascript] view plain copy public Object intercept(Invocation invocation) throws Throwable [javascript] view plain copy { [javascript] view plain copy return invocation.proceed(); [javascript] view plain copy } [javascript] view plain copy public Object plugin(Object target) { [javascript] view plain copy return Plugin.wrap(target, this); [javascript] view plain copy } [javascript] view plain copy public void setProperties(Properties properties) { [javascript] view plain copy } [html] view plain copy MapperConfig.xml [html] view plain copy <plugins> [html] view plain copy <plugin interceptor="org.mybatis.example.ExamplePlugin"> [html] view plain copy <property name="someProperty" value="100"/> [html] view plain copy </plugin> [html] view plain copy </plugins> [html] view plain copy
上面的插件将会拦截在Executor实例中所有的“update”方法调用,它也是负责低层次映射语句执行的内部对象。
environments
[html] view plain copy <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.user}" /> <property name="password" value="${jdbc.password}" /> <property name="poolPingEnabled" value="true"/> <property name="poolPingQuery" value="SELECT * FROM app_setup_setting WHERE name='allow_setup_unknown_app'" /> <property name="poolPingConnectionsNotUsedFor" value="7200000"/> </dataSource> </environment> </environments> dataSsource
dataSource元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源。见上
transactionManager
在MyBatis中有两种事务管理器类型(也就是type=”[JDBC|MANAGED]”):
1.JDBC – 这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
2.MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如Spring或JEE应用服务器的上下文)。默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false。例如:
[html] view plain copy <transactionManager type="MANAGED"> <property name="closeConnection" value="false"/> </transactionManager>
这两种事务管理器都不需要任何属性。然而它们都是类型别名,要替换使用它们,你需要放置将你自己的类的完全限定名或类型别名,它们引用了你对TransacFactory接口的实现类。
public interface TransactionFactory {
void setProperties(Properties props);
Transaction newTransaction(Connection conn, boolean autoCommit);
}
任何在XML中配置的属性在实例化之后将会被传递给setProperties()方法。你的实现类需要创建一个事务接口的实现,这个接口也很简单:
[html] view plain copy public interface Transaction { Connection getConnection(); void commit() throws SQLException; void rollback() throws SQLException; void close() throws SQLException; }
使用这两个接口,你可以完全自定义MyBatis对事务的处理。
mappers
既然MyBatis的行为已经由上述元素配置完了,我们现在就要定义SQL映射语句了。但是,首先我们需要告诉MyBatis到哪里去找到这些语句。Java在这方面没有提供一个很好的方法,所以最佳的方式是告诉MyBatis到哪里去找映射文件。你可以使用相对于类路径的资源引用,或者字符表示,或url引用的完全限定名(包括file:///URLs)。例如:
[html] view plain copy // Using classpath relative resources(首选) <mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/> </mappers> // Using url fully qualified paths <mappers> <mapper url="file:///var/sqlmaps/AuthorMapper.xml"/> <mapper url="file:///var/sqlmaps/BlogMapper.xml"/> <mapper url="file:///var/sqlmaps/PostMapper.xml"/> </mappers>
위 내용은 My Batis XML 매핑 구성 파일의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

RSSFEED에서 XML의 역할은 데이터를 구조화하고 표준화하고 확장 성을 제공하는 것입니다. 1.xml은 RSSFEED 데이터를 구성하여 쉽게 구문 분석하고 처리 할 수 있도록합니다. 2.XML은 RSSFEED의 형식을 정의하는 표준화 된 방법을 제공합니다. 3.xml 확장 성을 사용하면 RSSFeed가 필요에 따라 새 태그와 속성을 추가 할 수 있습니다.

XML 및 RSS 데이터를 처리 할 때 다음 단계를 통해 성능을 최적화 할 수 있습니다. 1) LXML과 같은 효율적인 파서를 사용하여 구문 분석 속도를 향상시킵니다. 2) 색소폰 파서를 사용하여 메모리 사용을 줄입니다. 3) XPath 표현식을 사용하여 데이터 추출 효율을 향상시킵니다. 4) 다중 프로세스 병렬 처리를 구현하여 처리 속도를 향상시킵니다.

RSS2.0은 콘텐츠 게시자가 컨텐츠를 구조화 된 방식으로 배포 할 수있는 개방형 표준입니다. 제목, 링크, 설명, 릴리스 날짜 등과 같은 풍부한 메타 데이터가 포함되어있어 가입자가 컨텐츠를 빠르게 탐색하고 액세스 할 수 있습니다. RSS2.0의 장점은 단순성과 확장 성입니다. 예를 들어, 사용자 정의 요소가 허용되므로 개발자는 저자, 카테고리 등과 같은 요구에 따라 추가 정보를 추가 할 수 있습니다.

RSS는 자주 업데이트되는 컨텐츠를 게시하는 데 사용되는 XML 기반 형식입니다. 1. RSSFEED는 제목, 링크, 설명 등을 포함하여 XML 구조를 통해 정보를 구성합니다. 2. RSSFEED를 만들려면 XML 구조로 작성하고 언어 및 출시 날짜와 같은 메타 데이터를 추가해야합니다. 3. 고급 사용에는 멀티미디어 파일과 분류 된 정보가 포함될 수 있습니다. 4. 디버깅 중 XML 검증 도구를 사용하여 필요한 요소가 존재하고 올바르게 인코딩되도록하십시오. 5. RSSFEED 최적화는 구조를 단순하게 유지하고 페이징, 캐싱 및 유지함으로써 달성 할 수 있습니다. 이 지식을 이해하고 적용함으로써 컨텐츠를 효과적으로 관리하고 배포 할 수 있습니다.

RSS는 컨텐츠를 게시하고 구독하는 데 사용되는 XML 기반 형식입니다. RSS 파일의 XML 구조에는 컨텐츠 항목을 나타내는 루트 요소, 요소 및 여러 요소가 포함됩니다. XML Parser를 통해 RSS 파일을 읽고 구문 분석하고 사용자는 최신 컨텐츠를 구독하고 얻을 수 있습니다.

XML은 RSS에서 구조화 된 데이터, 확장 성, 크로스 플랫폼 호환성 및 구문 분석 검증의 장점을 가지고 있습니다. 1) 구조화 된 데이터는 컨텐츠의 일관성과 신뢰성을 보장합니다. 2) 확장 성은 콘텐츠 요구에 맞게 맞춤형 태그를 추가 할 수 있습니다. 3) 크로스 플랫폼 호환성은 다른 장치에서 원활하게 작동합니다. 4) 분석 및 검증 도구는 피드의 품질과 무결성을 보장합니다.

XML에서 RSS 구현은 구조화 된 XML 형식을 통해 컨텐츠를 구성하는 것입니다. 1) RSS는 채널 정보 및 프로젝트 목록과 같은 요소를 포함하여 XML을 데이터 교환 형식으로 사용합니다. 2) RSS 파일을 생성 할 때는 사양에 따라 컨텐츠를 구성하고 구독을 위해 서버에 게시해야합니다. 3) RSS 파일은 리더 또는 플러그인을 통해 구독하여 컨텐츠를 자동으로 업데이트 할 수 있습니다.

RSS의 고급 기능에는 컨텐츠 네임 스페이스, 확장 모듈 및 조건부 구독이 포함됩니다. 1) 컨텐츠 네임 스페이스는 RSS 기능을 확장합니다. 2) 메타 데이터를 추가하기 위해 Dublincore 또는 iTunes와 같은 확장 된 모듈, 3) 특정 조건에 따라 조건부 구독 필터 항목. 이러한 기능은 XML 요소 및 속성을 추가하여 정보 수집 효율성을 향상시켜 구현됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
