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的时候配置如下:

MySQLDIFFERSFROMOTHERQLDIALCTSINSYNTAXFORLIMIT, Auto-Increment, StringComparison, Unterabfragen und Performanceanalyse.1) Mysqluse Slimit, whileqlServerusSestopandorakelSrownum.2) Mysql'Sauto_incrementContrastswithpostgresql'Sserialandoracle'ssequencandt

Die MySQL -Partitionierung verbessert die Leistung und vereinfacht die Wartung. 1) Teilen Sie große Tabellen nach bestimmten Kriterien (z. B. Datumsbereichen) in kleine Stücke, 2) Daten in unabhängige Dateien physikalisch unterteilen, 3) MySQL kann sich auf verwandte Partitionen konzentrieren, wenn Sie abfragen, 4) Abfragoptimierer kann nicht verwandte Partitionen überspringen, 5) Die Auswahl der richtigen Partitionsstrategie und die regelmäßige Wartung des Schlüssels ist der Schlüssel.

Wie kann man Berechtigungen in MySQL erteilen und widerrufen? 1. Verwenden Sie die Stipendienerklärung, um Berechtigungen wie GrantAllPrivileGesAndatabase_Name.to'username'@'host '; 2. Verwenden Sie die Revoke -Erklärung, um Berechtigungen wie RevokeAllPrivileGeDatabase_Name.From'username'@'host 'zu widerrufen, um eine rechtzeitige Kommunikation von Genehmigungsänderungen zu gewährleisten.

InnoDB ist für Anwendungen geeignet, die Transaktionsunterstützung und hohe Parallelität erfordern, während MyISAM für Anwendungen geeignet ist, für die mehr Lesevorgänge und weniger Schreibvorgänge erforderlich sind. 1.Innodb unterstützt Transaktions- und Bankebene, die für E-Commerce- und Banking-Systeme geeignet sind. 2.MyISAM bietet eine schnelle Lektüre und Indexierung, geeignet für Blogging- und Content -Management -Systeme.

Es gibt vier Haupt -Join -Typen in MySQL: Innerjoin, Leftjoin, Rightjoin und Fulouterjoin. 1.Nerjoin gibt alle Zeilen in den beiden Tischen zurück, die den Verbindungsbedingungen erfüllen. 2.Leftjoin gibt alle Zeilen in der linken Tabelle zurück, auch wenn in der rechten Tabelle keine übereinstimmenden Zeilen vorhanden sind. 3. Rightjoin ist gegen Leftjoin im Widerspruch und gibt alle Zeilen in der rechten Tabelle zurück. 4.Fulllouterjoin gibt alle Zeilen in den beiden Tischen zurück, die die Verbindungsbedingungen erfüllen oder nicht erfüllen.

MysqloffersVariousStorageEngines, EverySuitedfordifferentusecases: 1) InnoDbisidealforApplicationsNeedingaCidComplianceandHighConcurrency, SupportingingTransactions und MisseractersactionSactions.2) MyisamisBestforread-Heavyworks, Fehlen von Abladungen, mangelndtransaktionen

Zu den allgemeinen Sicherheitslücken in MySQL gehören die SQL -Injektion, schwache Passwörter, unsachgemäße Berechtigungskonfiguration und eine nicht updierte Software. 1. SQL -Injektion kann durch Verwendung von Vorverarbeitungsanweisungen verhindert werden. 2. Schwache Passwörter können vermieden werden, indem Sie starke Kennwortstrategien verwenden. 3. Eine unsachgemäße Berechtigungskonfiguration kann durch regelmäßige Überprüfung und Anpassung der Benutzerberechtigungen behoben werden. 4. Die nicht updierte Software kann durch regelmäßiges Überprüfen und Aktualisieren der MySQL -Version gepatcht werden.

Das Identifizieren langsamer Abfragen in MySQL kann erreicht werden, indem langsame Abfrageprotokolle aktiviert und Schwellenwerte festgelegt werden. 1. Aktivieren Sie langsame Abfrageprotokolle und setzen Sie Schwellenwerte. 2. Sehen und analysieren Sie langsame Abfrageprotokolldateien und verwenden Sie Tools wie MySQLDUMPSLOW oder PT-Query-Digest für eingehende Analysen. 3. Die Optimierung langsamer Abfragen kann durch Indexoptimierung, Umschreiben von Abfragen und Vermeidung der Verwendung von Select*erreicht werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),
