搜尋
首頁資料庫mysql教程iBatis入门--简单使用

Ibatis:一种ldquo;半 自动化rdquo;的 ORM 实现,也就是说ibatis 不会为程序员在运行期自动生成 SQL 执行。具体的 SQL 需要程序

一、概念

Hibernate 和 Apache OJB :“一站式”ORM

Ibatis:一种“半 自动化”的 ORM 实现,也就是说ibatis 不会为程序员在运行期自动生成 SQL 执行。具体的 SQL 需要程序员编写,然后通过映 射配置文件,将 SQL 所需的参数,以及返回的结果字段映射到指定 POJO。

二、使用

构建 ibatis 基础代码
ibatis 基础代码包括:

1. ibatis 配置SqlMapConfig.xml文件 :

(1)、Settings 节点

参数描述

cacheModelEnable 是否启用SqlMapClient上的缓存机制。建议设为"true"

enhancementEnable 是否针对POJO启用字节码增强机制,避免java reflect的性能开销

errorTracingEnabled 是否启用错误日志,开发期间可以开启,方便调试

lazyLoadingEnalbed 是否启用延迟加载

maxRequests 最大并发请求数(Statement 并发数)

maxTransactions 最大并发事务数

maxSessions 最大Session数,及最大的并发SqlMapclient数,必须介于maxTransactions和maxRequest之间

(2)、transactionManager 事物管理
(3)、dataSource 数据源配置
(4)、sqlMap 用于包括SQL Map映射文件和其他的SQL Map配置文件。每个SqlMapClient对象使用的所有SQL Map映射文件都要在此声明。映射文件作为stream resource从类路径或URL读入。您必须在这里指定所有的SQL Map文件。

2、实体类POJO。这个需要和数据库的相对应。

3、映射文件map,通常放在sqlmap包下,实现具体的数据库操作语句。主要有模块配置、缓存配置、statement配置。使用最多的应该是此处的statement配置了,需要用的sql语句和参数都写在这里。

4、如何在代码中使用,这才是最关键的。

在此先要搞清楚几个比较核心的比较重要的概念:

(1)、XmlSqlMapClientBuilder,ibatis 2.0 之后版本新引入的组件, 用以替代 1.x 版本中的 XmlSqlMapBuilder。其作用是根据配置文件创建 SqlMapClient 实例。

(2)、SqlMapClient 是 ibatis 的核心组件, 提供数据操作的基础平台。

SqlMapClient 可通过 XmlSqlMapClientBuilder 创建:
String resource ="com/ibatis/sample/SqlMapConfig.xml";

Reader reader; reader = Resources.getResourceAsReader(resource);

XmlSqlMapClientBuilder xmlBuilder = new XmlSqlMapClientBuilder();

SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader);

备注:"com/ibatis/sample/SqlMapConfig.xml"指明了配置文件在 CLASSPATH 中的相对路径。 XmlSqlMapClientBuilder 通过接受一个 Reader 类型的配置文 件句柄,根据配置参数,创建 SqlMapClient 实例。 SqlMapClient 提供了众多数据操作方法。

5、SqlMapClient 基本操作示例

见Ibatis官方手册

6、学习体会

大三用java做数据库课程设计的时候将所有的数据库操作都写在一个类里,程序的耦合性很高,扩展性也不好。Ibatis是我第一次接触的,感觉学起来很容易上手,自己也学着在Demo上试了一下,做了个简单的登陆界面。学习ibatis的过程最重要的是理解他的工作原理和映射关系,还有就是结合webx开发,哪些文件应该放置在哪层(通常是DAO层),弄清楚这些问题,在以后的开发中肯定也是很有帮助的。

实践中遇到的问题:

无法链接数据库,无法下载数据库驱动,把jdbc.mysql.mysql-connector包复制到tomcat下面的lib目录中即可。当然要保证你的xml配置是正确的,我连接本地Mysql的时候配置如下:

        destroy-method="close">
       
       
       
       

linux

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
iBatis和MyBatis:哪个更适合你?iBatis和MyBatis:哪个更适合你?Feb 19, 2024 pm 04:38 PM

iBatis与MyBatis:你应该选择哪个?简介:随着Java语言的快速发展,许多持久化框架也应运而生。iBatis和MyBatis是两个备受欢迎的持久化框架,它们都提供了一种简单而高效的数据访问解决方案。本文将介绍iBatis和MyBatis的特点和优势,并给出一些具体的代码示例,帮助你选择合适的框架。iBatis简介:iBatis是一个开源的持久化框架

iBatis与MyBatis:比较与优势剖析iBatis与MyBatis:比较与优势剖析Feb 18, 2024 pm 01:53 PM

iBatis和MyBatis:区别和优势解析导语:在Java开发中,持久化是一个常见的需求,而iBatis和MyBatis是两个广泛使用的持久化框架。虽然它们有很多相似之处,但也有一些关键的区别和优势。本文将通过详细分析这两个框架的特性、用法和示例代码,为读者提供更全面的了解。一、iBatis特性:iBatis是目前较为老旧的持久化框架,它使用SQL映射文件

ibatis和mybatis有什么区别ibatis和mybatis有什么区别Jan 10, 2024 am 11:25 AM

ibatis和mybatis的区别:1、基本信息不同;2、开发时间不同;3、功能与易用性;4、配置文件;5、入参类型与出参类型;6、返回结果集接受方式;7、语法差异;8、数据库方言支持;9、插件支持;10、社区活跃度;11、全球化支持。详细介绍:1、基本信息不同,iBatis提供持久层框架,包括SQL Maps和Data Access Objects等等。

iBatis与MyBatis:历史与现状的对比评价iBatis与MyBatis:历史与现状的对比评价Feb 19, 2024 am 10:42 AM

iBatis和MyBatis:从历史到现状的评估与对比引言:随着软件开发领域的快速发展,对于数据库访问框架也提出了越来越高的要求。iBatis和MyBatis是两个备受关注的Java持久层框架,它们都提供了一种简单灵活的方式来访问关系型数据库。本文将对这两个框架进行历史回顾,并对它们的现状进行评估与对比。一、历史回顾iBatisiBatis是由Clinton

iBatis与MyBatis的异同比较:主流ORM框架的对比iBatis与MyBatis的异同比较:主流ORM框架的对比Feb 19, 2024 pm 07:08 PM

iBatis和MyBatis是两种主流的ORM(Object-RelationalMapping)框架,它们在设计和使用上有着许多相似之处,也存在一些细微的差别。本文将详细比较iBatis和MyBatis的异同,并通过具体的代码示例来说明它们的特点。一、iBatis与MyBatis的历史和背景iBatis是ApacheSoftwareFoundat

ibatis mysql 乱码怎么解决ibatis mysql 乱码怎么解决Feb 16, 2023 am 10:40 AM

ibatis mysql乱码的解决办法:1、检查mysql的字符集,并设置为utf8;2、将配置修改为“<property name="url"><value><![CDATA[jdbc:mysql://localhost:3306/yourDbNameuseUnicode=TRUE&characterEncoding=utf8]]></value>”即可。

iBatis与MyBatis:两个Java持久化框架的比较与选择iBatis与MyBatis:两个Java持久化框架的比较与选择Feb 22, 2024 pm 07:09 PM

iBatis与MyBatis:两个Java持久化框架的比较与选择引言:在Java开发中,选择一个合适的持久化框架是提高开发效率和性能的关键。在众多的框架中,iBatis和MyBatis是两个备受开发者喜爱的框架。它们都提供了简洁、灵活和高效的方式来操作数据库。本文将从以下几个方面对iBatis和MyBatis进行比较,以帮助开发者选择适合自己项目的持久化框架

Java JPA 与其他持久化框架的比较:哪一个更适合你?Java JPA 与其他持久化框架的比较:哪一个更适合你?Feb 19, 2024 pm 08:21 PM

JPA(JavaPersistenceapi)是一个标准的JavaAPI,它提供了一组用于访问和持久化数据对象的接口。JPA是JPA工作组的成果,该工作组由SunMicrosystems(现为oracle)和其他公司组成。JPA于2006年12月发布,并已成为JavaPersistenceAPI规范的标准实现。JPA框架提供了以下主要特性:对象-关系映射(ORM)事务管理查询JPAORM将数据库表映射到Java对象,以便您可以使用标准的JavaAPI来操作数据库数据。JPA事务管理允许您对多个数

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。