《iBatis教程中文版.doc》由会员分享,可在线阅读,更多相关《iBatis教程中文版.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1. 显示数据库所有数据iBatis是个像Hibernate, JDO,EJB一类的数据持久框架,它能将对象映射为SQL语句.它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库.本节我们将向你讲述如何配置iBatis来运行一个小型程序.既然一次性将所有知识全部解释很难,我们索性把本教程分为几个单独的例子来陈述.该例是关于如何从数据库读取数据并将结果显示在你的命令提示符上.在第二个例子中你将学习如何添加更多的数据到数据库中,在此之后的第三个例子将会向你展示如何通过iBatis从记录中删除数据.现在的
2、第一个例子将会向你展示如何从数据库中读取记录,我们需要一个数据库来执行查询,所以我们使用MySQL5.0作为这个例子的数据库.这里我们将要检索一些人的contact的信息, contact的表结构给出如下 : DROP TABLE IF EXISTS contact;CREATE TABLE contact ( id int(11) NOT NULL auto_increment, firstName varchar(20) default NULL, lastName varchar(20) default NULL, email varchar(20) default NULL, PRIM
3、ARY KEY (id);根据Contact表我们需要创建一个POJO类,在我们的例子中,数据库vin有一个表Contact,包括四个字段 : id firstName lastName email Contact.javapublic class Contact private String firstName; private String lastName; private String email; private int id; public Contact() public Contact( String firstName, String lastName, String ema
4、il) this.firstName = firstName; this.lastName = lastName; this.email = email; public String getEmail() return email; public void setEmail(String email) this.email = email; public String getFirstName() return firstName; public void setFirstName(String firstName) this.firstName = firstName; public int
5、 getId() return id; public void setId(int id) this.id = id; public String getLastName() return lastName; public void setLastName(String lastName) this.lastName = lastName; 为了映射配置我们需要创建SqlMapConfig.xml来指定如下信息 : 针对映射语句的命名空间前缀 我们的数据库将使用JDBC来进行访问 针对MySQL的JDBC驱动为 com.mysql.jdbc.Driver 连接URL为jdbc:mysql:/1
6、92.168.10.112:3306/vin 用户名与密码分别为root和root 我们的SQL语句描述在Contact.xmlSqlMapConfig.xml 映射文件在下面给出,它主要负责为我们的程序执行SQL查询. Contact.xml的代码如下 : select * from contact现在为了显示数据库中的数据我们需要创建一个类-IbatisExample,它从SqlMapConfig.xml中读取配置并在你的控制台输出所有数据. IbatisExample.java的代码如下 : import mon.resources.Resources;import com.ibatis
7、.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;import java.io.*;import java.sql.SQLException;import java.util.*;public class IbatisExample public static void main(String args) throws IOException,SQLException Reader reader = Resources.getResourceAsReader(SqlMapConfig.
8、xml); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); /Output all contacts System.out.println(All Contacts); List contacts = (List) sqlMap.queryForList(Contact.getAll,null); Contact contact = null; for (Contact c : contacts) System.out.print( + c.getId(); System.out.print( + c.g
9、etFirstName(); System.out.print( + c.getLastName(); System.out.print( + c.getEmail(); contact = c; System.out.println(); 为了运行该例,你需要遵循如下步骤 : 在你的MySQL数据库中创建表Contact 下载iBatis的JAR文件(ibatis-common-2.jar,ibatis-dao-2.jar,ibatis-sqlmap-2.jar),并将其放置在你的lib目录中 设置类路径 创建Contact.java将其编译 创建Contact.java 创建SqlMapC
10、onfig.xml 创建IbatisExample.java并将其编译 执行IbatisExample文件输出 : 你的命令提示符应该有像这样的输出 : 2.向数据库插入数据iBatis最棒的特点就是它的简洁,这也是唯一令它在任何数据库程序中更容易使用的原因.iBatis使得通过Java或者任何其它的Microsoft的程序来使用数据库变得非常简单.本章我们将会通过一个例子向你介绍如何向数据库插入一行数据.我们使用MySQL作为本例的数据库,和我们上一章中使用的是一样的.这是Contact表和我们上一章使用过的两个文件:Contact.java和SqlMapConfig.xmlContact.
11、javapublic class Contact private String firstName; private String lastName; private String email; private int id; public Contact() public Contact( String firstName, String lastName, String email) this.firstName = firstName; this.lastName = lastName; this.email = email; public String getEmail() retur
12、n email; public void setEmail(String email) this.email = email; public String getFirstName() return firstName; public void setFirstName(String firstName) this.firstName = firstName; public int getId() return id; public void setId(int id) this.id = id; public String getLastName() return lastName; pub
13、lic void setLastName(String lastName) this.lastName = lastName; SqlMapConfig.xml 我们使用标签来映射SQL语句,在该标签中我们定义了一个id,它将在IbatisInsertion.java文件中用来执行数据库插入,查询操作. select last_insert_id() as id上面的代码意味着表中被插入数据的下一行.Contact.xml insert into contact (firstName,lastName,email) values (#firstName#, #lastName#, #email
14、#) select last_insert_id() as id select * from contactIbatisInsertion.java的代码如下 :import mon.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;import java.io.*;import java.sql.SQLException;import java.util.*;public class IbatisInserti
15、on public static void main(String args) throws IOException,SQLException Reader reader = Resources.getResourceAsReader(SqlMapConfig.xml); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); /Inserting one record in contacts System.out.println( *- Inserting information in Contact Tabl
16、e -*); Contact contact=new Contact(Amit,Kumar,amit); sqlMap.insert(Contact.insert,contact); System.out.println(|Record Inserted Successfully ); System.out.println(All Contacts); List contacts = (List) sqlMap.queryForList(Contact.getAll,null); Contact contactall = new Contact(); for (Contact c : cont
17、acts) System.out.print( + c.getId(); System.out.print( + c.getFirstName(); System.out.print( + c.getLastName(); System.out.print( + c.getEmail(); contact = c; System.out.println(); System.out.println(=); 如何执行本例 :1.创建Contact.java并将其编译2.创建Contact.xml和SqlMapConfig.xml3.创建IbatisInsertion.java4.执行IbatisI
18、nsertion类文件,结果将在你的命令提示符上输出如下 :Record Inserted Successfully输出 :3.iBatis删除操作教程我希望通过上面的例子,你能完全懂得如何向数据库执行插入或者查询操作.所以在本例中你将学习到如何通过iBatis在数据库中删除数据.所以你需要分析代码并清楚的理解在这些代码里到底发生了什么.然而你绝对不需要再创建一个不同的数据库,虽然你知道我们使用上一个MySQL作为数据库而且你已经知道了我们的表名是Contact.但你可以选择是使用这个数据库还是再创建一个,这都由你决定!你唯一需要确定的就是你定义的表名是正确的,否则将会产生Bug.如果你从本i
19、Batis教程的开始学下来的,那么你是不需要修改代码的.仅仅将给定的代码拷贝到文件夹并执行,最终删除数据库表中的数据.正如我之前提到的,在iBatis的本章,我们将要从Ctract表中删除记录,我们使用MySQL的数据库vin我们的Contact.java和SqlMapConfig.xm与上一个例子中的是一样的.Contact.javapublic class Contact private String firstName; private String lastName; private String email; private int id; public Contact() publ
20、ic Contact( String firstName, String lastName, String email) this.firstName = firstName; this.lastName = lastName; this.email = email; public String getEmail() return email; public void setEmail(String email) this.email = email; public String getFirstName() return firstName; public void setFirstName
21、(String firstName) this.firstName = firstName; public int getId() return id; public void setId(int id) this.id = id; public String getLastName() return lastName; public void setLastName(String lastName) this.lastName = lastName; SqlMapConfig.xml 在Contract.xml文件中我们使用标签删除Contract表中的全部记录. delete from C
22、ontact上面几行代码删除了Contract表中的所有记录,这里定义的iddeleteAll会在以后在IbatisDeletion类中执行数据库的查询操作.Contact.xml delete from Contact select * from contact我们需要引入下面的包 :mon.resourcescom.ibatis.sqlmap.client SQL映射所需的类和接口 :Reader reader = Resources.getResourceAsReader(SqlMapConfig.xml); SqlMapClient sqlMap = SqlMapClientBuild
23、er.buildSqlMapClient(reader);上面的代码能从SqlMapConfig.xml中读取配置信息, IbatisDeletion.java的代码如下 :IbatisDeletion.javaimport mon.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;import java.io.*;import java.sql.SQLException;import java.util.*;p
24、ublic class IbatisDeletion public static void main(String args) throws IOException,SQLException Reader reader = Resources.getResourceAsReader(SqlMapConfig.xml); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); /Deleting all records from contacts System.out.println(*- Deleting inf
25、ormations from Contact-*); Contact contct=new Contact(); sqlMap.delete(Contact.deleteAll,contct); System.out.println(|Deleted Record Successfully ); System.out.println(All Contacts); List contacts = (List) sqlMap.queryForList(Contact.getAll,null); Contact contact = null; for (Contact c : contacts) S
26、ystem.out.print( + c.getId(); System.out.print( + c.getFirstName(); System.out.print( + c.getLastName(); System.out.print( + c.getEmail(); contact = c; System.out.println(); System.out.println(=); 按照如下步骤执行本例 :创建Contact.xml和SqlMapConfig.xml创建Contract.java并将其编译创建IbatisDeletion.java并将其编译执行IbatisDeletio
27、n你将会在你的命令提示符中得到如下输出 :4.更新表中的数据对任何数据库程序来说,添加,更新,删除都是十分常见且必要的特性.在该教程里我们已经讲解了使用iBatis在Java中进行插入和删除操作,现在本章将讲述如何使用iBatis在数据表中更新数据.在iBatis中执行一条更新语句是非常简单的.为了更新数据你得在SQL映射文件Contact.xml中添加SQL的update语句.iBatis更新语句例子 :Contact.javapublic class Contact private String firstName; private String lastName; private Str
28、ing email; private int id; public Contact() public Contact( String firstName, String lastName, String email) this.firstName = firstName; this.lastName = lastName; this.email = email; public String getEmail() return email; public void setEmail(String email) this.email = email; public String getFirstN
29、ame() return firstName; public void setFirstName(String firstName) this.firstName = firstName; public int getId() return id; public void setId(int id) this.id = id; public String getLastName() return lastName; public void setLastName(String lastName) this.lastName = lastName; SqlMapConfig.xml iBatis更新查询在我们的例子中,