一:
使用ibatis进行对数据进行操作
好处:数据库的配置和sql语句与程序是分开的,
1. 创建一个java项目,
2. 引入jar包:ibatis-2.3.4.726.jar ,mysql-connector-java-5.1.12-bin.jar
3. ibatis的配置文件,配置数据库和需要使用sqlXML
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://10.10.12.250:3306/uc?characterEncoding=utf8"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="root"/> </dataSource> </transactionManager> <sqlMap resource="test/ibatis/sql.xml"/> </sqlMapConfig>
4.准备需要的sql文件 sqlXML
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <!-- ibatis 输入参数 --> <sqlMap namespace="User"> <select id="selectUser" resultClass="hashmap" parameterClass="int"> select * from uc_users where uid=#uid# </select> </sqlMap>
特别注意:xml的前面不能有任何字符甚至是注释和空格
5. java 使用ibatis进行数据的增删改查
package test.ibatis; import java.io.Reader; import java.util.Map; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class TestIbatis { public static void main(String[] args) throws Exception{ try{ //从配置文件中得到SqlMapClient对象 Reader reader = Resources.getResourceAsReader("sqlMapConf.xml"); SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); //查询用户数据 Map users = (Map) sqlMapper.queryForObject("selectUser", 5); System.out.println(users); }catch (Exception e) { System.out.println(e); } } }
二:对照直接查询mysql数据库,
该方式,数据库信息和sql语句是依赖于程序的,大项目里若修改必须重新编译,程序写的太死,可用性差
package inspur.data; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.DriverManager; import java.sql.SQLException; /*sqlAPi主要作用是: 与数据库建立连接\发送 SQL 语句\处理结果*/ public class TestJavaConMysql { static public void main(String [] arg){ /** * 装载驱动程序Class.forName("com.mysql.jdbc.Driver") * DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。 * Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。\ * Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。 * Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。 * PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。 * CallableStatement:用以调用数据库中的存储过程。 * SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误) **/ try{ Connection cnn=null; Class.forName("com.mysql.jdbc.Driver"); cnn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/uc_qingdao?user=root&password=&useUnicode=true&characterEncoding=utf-8"); String querySql="select * from uc_users where uid>2000 and uid<10000 "; PreparedStatement stmt= cnn.prepareStatement(querySql); ResultSet rs = stmt.executeQuery(querySql); while(rs.next()){ System.out.println(rs.getInt("uid")); } }catch(ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }
三:与传统JDBC比较:
减少了61%的代码量
最简单的持久化框架,jar包只有300k,使用更简单主要定义一个主配置文件然后是各个子的sql文件,
sql代码从程序代码中彻底分离出来,可重用
可移植性强
四:
SqlMapClient 是一个接口,具体的实现类是SqlMapClientImp
可以映射定义好的javabean:
package test.ibatis; import java.io.Reader; import java.util.Map; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class TestIbatis { public static void main(String[] args) throws Exception{ try{ //从配置文件中得到SqlMapClient对象 Reader reader = Resources.getResourceAsReader("sqlMapConf.xml"); SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); //查询用户数据,selectUser是sqlMap的id,后面是需要输入的参数 // Map users = (Map) sqlMapper.queryForObject("selectUser", 5); // System.out.println(users); //将ibatis的输出结果对应于javabean User users = (User) sqlMapper.queryForObject("selectUser2", 5); System.out.println(users.getUser_id()); }catch (Exception e) { System.out.println(e); } } }
<?xml version="1.0" encoding="UTF-8" ?> <!-- 注意:xml的最前面左尖括号前面不能有任何字符串,包括空格和注释 --> <!-- sql-map-2.dtd 标签库 --> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <!-- ibatis 输入参数 --> <sqlMap namespace="User"> <select id="selectUser" resultClass="hashmap" parameterClass="int"> select * from uc_users where uid=#uid# </select> <!-- resultClass="test.ibatis.User" 输出结果强转为提前定义好的javabean --> <select id="selectUser2" resultClass="test.ibatis.User" parameterClass="int"> select user_id,uid,login_email from uc_users where uid=#uid# </select> </sqlMap>
相关推荐
总之,《IBATIS_IN_ACTION》不仅是一本详尽的技术手册,更是一部引导读者深入了解iBATIS核心理念与技术细节的实用指南。无论你是初学者还是有经验的开发者,都能从中获得有价值的见解和启示,提升自己的技能水平。
总的来说,"ibatis_with_memcached"项目提供了一个实用的参考,展示了如何在实际开发中利用Ibatis与Memcached集成来优化数据访问,对于提升Java Web应用的性能具有很大的指导价值。开发者可以通过该项目学习到缓存...
标签 "ibatis" 是这个主题的关键,Ibatis以其简单易用、灵活高效的特点,在Java Web开发中广泛应用。它不强求面向对象与关系数据库的完全映射,而是通过XML或注解来配置SQL和结果映射,使得SQL控制更加自由。此外,...
这篇博客(博文链接已提供,但在此我们将基于通用知识进行讲解)可能会涵盖 iBATIS 的安装、配置、基本用法以及一些实用技巧。 首先,让我们了解 iBATIS 的核心概念: 1. **XML 映射文件**:在 iBATIS 中,SQL ...
8. MyBatis Generator:这是一个实用工具,可以自动生成iBATIS相关的Java代码和XML配置文件,减轻了开发者的重复劳动。 9. Spring集成:iBATIS可以很好地与Spring框架集成,利用Spring的依赖注入特性,实现更灵活的...
比如,它提供了异常处理(如`org.apache.ibatis.exceptions.PersistenceException`),日志服务(如`org.apache.ibatis.logging`),还有一些基本的数据类型转换和实用工具类。例如,`org.apache.ibatis.type.Type...
【Ibatis视频教程】是一个非常实用的学习资源,它旨在帮助初学者或有经验的开发者深入理解和掌握Ibatis这一流行的Java持久层框架。Ibatis是由Apache软件基金会维护的一个开源项目,它的核心功能是将SQL语句与Java...
而ibatis-common.jar包则是Ibatis框架的重要组成部分,它提供了诸多实用功能,帮助开发者更高效地进行数据访问操作。本文将详细探讨ibatis-common.jar包的核心功能及其实现原理。 首先,ibatis-common-1.3.1.jar与...
在iBATIS中,主要包括SQL Maps和Data Access Objects(DAO)两个核心组件,以及一系列实用工具。 **SQL Maps** 是iBATIS的核心,它通过XML文件将JavaBean、Map实现甚至是基本类型包装类(如String、Integer等)映射...
此外,它还支持多数据源配置,对于大型项目尤为实用。 这两款工具都遵循了Maven插件的设计模式,可以在构建过程中自动化生成代码,避免了手动维护的繁琐。在实际使用中,开发者需要在项目的pom.xml文件中配置相应的...
除了核心组件之外,ibatis还提供了一系列实用工具,如SimpleDataSource、JDBCDataSource 2.0 (也支持3.0版本)以及ScriptRunner等,这些工具可以简化数据库连接管理、脚本执行等工作。 - **SimpleDataSource**:用于...
描述中的“对刚开始学习ibatis 的人真的很有用,希望能帮到您”强调了这些文档对于新手的友好性和实用性,意味着它可能包含了基础概念、安装步骤、配置教程以及常见问题解答等内容。 **标签解析:** "ibatis 开发...
总结一下,"IBatis 代码生成工具"是.NET平台上的一款实用软件,能够自动化生成IBatis框架所需的XML配置文件,从而提高开发效率。结合DevExpress组件,它提供了友好的用户界面,简化了与数据库交互的代码编写工作,...
通过上述介绍,我们可以看到使用 `HashMap` 解决 ibatis 中的动态列名和列数的问题是一种非常实用的方法。它不仅避免了为每种情况创建实体类的繁琐工作,还提高了代码的灵活性和可维护性。希望本文能够帮助你在实际...
从添加依赖、配置数据库、编写映射文件到实现业务逻辑,每个步骤都体现了iBatis3的简洁性和实用性。在实际项目中,结合Spring等框架,iBatis3能更好地帮助开发者管理数据库操作,提升开发效率。
在这个项目中,TLD文件定义了一个分页标签,使得在JSP页面上可以通过简单的标签语法实现分页展示,大大提高了开发效率。 最后,关于JSP页面,它们是用户界面的展示层。在这个分页项目中,JSP页面已经预设好了如何...
在`ibatis-sqlmaps-2_cn.pdf`中,你将看到如何定义SQL语句,包括简单查询、插入、更新和删除操作,以及如何处理结果集映射。此外,教程还会涵盖动态SQL,这是IBATIS的一大亮点,允许在运行时构建和修改SQL语句,提高...