`

简单使用ibatis

 
阅读更多

 一:

使用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_IN_ACTION》不仅是一本详尽的技术手册,更是一部引导读者深入了解iBATIS核心理念与技术细节的实用指南。无论你是初学者还是有经验的开发者,都能从中获得有价值的见解和启示,提升自己的技能水平。

    ibatis_with_memcached

    总的来说,"ibatis_with_memcached"项目提供了一个实用的参考,展示了如何在实际开发中利用Ibatis与Memcached集成来优化数据访问,对于提升Java Web应用的性能具有很大的指导价值。开发者可以通过该项目学习到缓存...

    ibatis插件

    标签 "ibatis" 是这个主题的关键,Ibatis以其简单易用、灵活高效的特点,在Java Web开发中广泛应用。它不强求面向对象与关系数据库的完全映射,而是通过XML或注解来配置SQL和结果映射,使得SQL控制更加自由。此外,...

    ibatis 入门

    这篇博客(博文链接已提供,但在此我们将基于通用知识进行讲解)可能会涵盖 iBATIS 的安装、配置、基本用法以及一些实用技巧。 首先,让我们了解 iBATIS 的核心概念: 1. **XML 映射文件**:在 iBATIS 中,SQL ...

    iBATIS官方

    8. MyBatis Generator:这是一个实用工具,可以自动生成iBATIS相关的Java代码和XML配置文件,减轻了开发者的重复劳动。 9. Spring集成:iBATIS可以很好地与Spring框架集成,利用Spring的依赖注入特性,实现更灵活的...

    ibatis开发包(common+sqlmap+dao)

    比如,它提供了异常处理(如`org.apache.ibatis.exceptions.PersistenceException`),日志服务(如`org.apache.ibatis.logging`),还有一些基本的数据类型转换和实用工具类。例如,`org.apache.ibatis.type.Type...

    Ibatis视频下载

    【Ibatis视频教程】是一个非常实用的学习资源,它旨在帮助初学者或有经验的开发者深入理解和掌握Ibatis这一流行的Java持久层框架。Ibatis是由Apache软件基金会维护的一个开源项目,它的核心功能是将SQL语句与Java...

    ibatis-common.jar包

    而ibatis-common.jar包则是Ibatis框架的重要组成部分,它提供了诸多实用功能,帮助开发者更高效地进行数据访问操作。本文将详细探讨ibatis-common.jar包的核心功能及其实现原理。 首先,ibatis-common-1.3.1.jar与...

    ibatis 学习笔记

    在iBATIS中,主要包括SQL Maps和Data Access Objects(DAO)两个核心组件,以及一系列实用工具。 **SQL Maps** 是iBATIS的核心,它通过XML文件将JavaBean、Map实现甚至是基本类型包装类(如String、Integer等)映射...

    Ibatis/mybatis代码生成工具

    此外,它还支持多数据源配置,对于大型项目尤为实用。 这两款工具都遵循了Maven插件的设计模式,可以在构建过程中自动化生成代码,避免了手动维护的繁琐。在实际使用中,开发者需要在项目的pom.xml文件中配置相应的...

    ibatis环境搭建教程

    除了核心组件之外,ibatis还提供了一系列实用工具,如SimpleDataSource、JDBCDataSource 2.0 (也支持3.0版本)以及ScriptRunner等,这些工具可以简化数据库连接管理、脚本执行等工作。 - **SimpleDataSource**:用于...

    ibatis 帮助文档

    描述中的“对刚开始学习ibatis 的人真的很有用,希望能帮到您”强调了这些文档对于新手的友好性和实用性,意味着它可能包含了基础概念、安装步骤、配置教程以及常见问题解答等内容。 **标签解析:** "ibatis 开发...

    IBatis 代码生成工具

    总结一下,"IBatis 代码生成工具"是.NET平台上的一款实用软件,能够自动化生成IBatis框架所需的XML配置文件,从而提高开发效率。结合DevExpress组件,它提供了友好的用户界面,简化了与数据库交互的代码编写工作,...

    ibatis 用HashMap解决resultClass映射

    通过上述介绍,我们可以看到使用 `HashMap` 解决 ibatis 中的动态列名和列数的问题是一种非常实用的方法。它不仅避免了为每种情况创建实体类的繁琐工作,还提高了代码的灵活性和可维护性。希望本文能够帮助你在实际...

    第一个ibatis3工程

    从添加依赖、配置数据库、编写映射文件到实现业务逻辑,每个步骤都体现了iBatis3的简洁性和实用性。在实际项目中,结合Spring等框架,iBatis3能更好地帮助开发者管理数据库操作,提升开发效率。

    基于ibatis的分页

    在这个项目中,TLD文件定义了一个分页标签,使得在JSP页面上可以通过简单的标签语法实现分页展示,大大提高了开发效率。 最后,关于JSP页面,它们是用户界面的展示层。在这个分页项目中,JSP页面已经预设好了如何...

    ibatis-sqlmaps-2_cn

    在`ibatis-sqlmaps-2_cn.pdf`中,你将看到如何定义SQL语句,包括简单查询、插入、更新和删除操作,以及如何处理结果集映射。此外,教程还会涵盖动态SQL,这是IBATIS的一大亮点,允许在运行时构建和修改SQL语句,提高...

Global site tag (gtag.js) - Google Analytics