iBATIS SQLMap开发指南:从入门到精通

5星 · 超过95%的资源 需积分: 22 4 下载量 182 浏览量 更新于2024-07-24 收藏 983KB PDF 举报
iBATIS-SqlMaps-2_开发手册_中文版.pdf iBATIS SQLMaps 开发指南是针对 iBATIS 框架中 SQL Maps 版本2.0的详细文档,由 Clinton Begin 编写并由刘涛翻译成中文。这本书旨在帮助开发者理解和使用 iBATIS 的 SQL Maps 功能进行数据库操作。 SQLMap 是 iBATIS 框架的核心组件,它负责管理SQL语句、存储过程和数据映射。SQLMap 概念的核心在于将SQL语句与Java代码分离,使得数据库操作更加灵活且易于维护。SQLMap 如何工作?它通过XML配置文件定义SQL语句和结果映射,然后在运行时动态组装和执行这些SQL,将结果自动映射到Java对象。 在开始使用 iBATIS SQL Maps 之前,你需要了解如何安装和升级。JAR文件和依赖性部分介绍了需要包含的库文件。如果你是从1.x版本升级,文档提供了转换XML配置文件的步骤,以及如何使用新的JAR文件。 SQLMap XML配置文件是整个系统的心脏,包含了数据库连接、事务管理和数据源等关键设置。其中,`<properties>`元素用于加载外部属性文件,`<setting>`元素用来设置全局配置,`<typeAlias>`定义类型别名以简化类引用,`<transactionManager>`和`<datasource>`分别指定事务管理和数据源配置,而`<sqlMap>`元素则是定义具体的SQL映射文件。 SQLMap XML映射文件定义了具体的数据库操作,如MappedStatements,包括不同类型的Statement(如简单SQL、自动生成主键的SQL、存储过程)。每个Statement都可能有`parameterClass`、`parameterMap`、`inlineParameterMap`(用于传递参数)、`resultClass`、`resultMap`等元素,来定义输入参数和输出结果的映射方式。`<parameter>`元素用于指定输入参数,而`<resultMap>`则用于复杂结果集的映射,包括基本类型、Map类型和复杂类型对象的属性映射。 文档还强调了如何避免N+1 Select问题,这是数据库性能优化中的常见问题。通过使用延迟加载或联合查询,可以更有效地处理一对一和一对多、多对多关系的数据加载,从而提高应用性能。 iBATIS SQL Maps 2.0开发手册提供了全面的指导,涵盖了从安装、配置到实际数据库操作的各个环节,是开发者掌握iBATIS框架的关键参考资料。

D:\javaJDK17\bin\java.exe "-javaagent:D:\编程软件\idea2022\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=4912:D:\编程软件\idea2022\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "D:\IDEA java\javaWeb\Maven\maven-project01\target\classes;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\org\mybatis\mybatis\3.5.5\mybatis-3.5.5.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\org\slf4j\slf4j-api\1.7.32\slf4j-api-1.7.32.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\ch\qos\logback\logback-core\1.2.6\logback-core-1.2.6.jar;D:\Maven\apache-maven-3.9.3-bin\apache-maven-3.9.3\mvn_store\ch\qos\logback\logback-classic\1.2.6\logback-classic-1.2.6.jar" Demo1.HelloWord Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${com.mysql.jdbc.Driver} ### The error may exist in UserMapper.xml ### The error may involve test.selectAll ### The error occurred while executing a query ### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${com.mysql.jdbc.Driver} at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:135) at Demo1.HelloWord.main(HelloWord.java:23) Caused by: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${com.mysql.jdbc.Driver} at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.initializeDriver(UnpooledDataSource.java:244) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:223) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:219) at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:95) at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:432) at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:89) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:139) at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:61) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 3 more

2023-07-22 上传