我下班了
下面是一个从数据库中读取数据的例子
你可以看一下
显示数据库所有数据
现在的第一个例子将会向你展示如何从数据库中读取记录,我们需要一个数据库来执行查询,所以我们使用MySQL5.0作为这个例子的数据库.
这里我们将要检索一些人的contact的信息, contact的表结构给出如下 :
DROP TABLE IF EXISTS `contact`;
CREATE TABLE `contact` (
`contactid` int(11) NOT NULL auto_increment,
`firstame` varchar(20) default NULL,
`lastname` varchar(20) default NULL,
`email` varchar(20) default NULL,
PRIMARY KEY (`contactid`)
);
根据Contact表我们需要创建一个POJO类,
在我们的例子中,数据库test有一个表Contact,包括四个字段 :
contactid
firstName
lastName
POJO类的字段请与数据库建表字段相同,这样可以使用eclipse或myeclipse的自动生成方法。因为字段虽然不要求和数据库相同,但是要求getter 和setters方法里的名字相同。比如getId(),那么数据库里的就是id
Contact.java
public class Contact {
private String firstName;
private String lastName;
private String email;
private int contactid;
public Contact() {}
//放3个属性就行了,暂时不用contactid
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 getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public int getContactid() {
return contactid;
}
public void setContactid(int id) {
this.contactid = 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://localhost:3306/test"
用户名与密码分别为"root"和"root",根据你自己情况填写
我们的SQL语句描述在"Contact.xml"
SqlMapConfig.xml
/p>
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
value="jdbc:mysql://localhost:3306/test"/>
映射文件在下面给出,它主要负责为我们的程序执行SQL查询. Contact.xml的代码如下 :
/p>
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
select * from contact
select * from contact where contact id = #contactid#
现在为了显示数据库中的数据我们需要创建一个类----IbatisExample,它从SqlMapConfig.xml中读取配置并在你的控制台输出所有数据. IbatisExample.java的代码如下 :
import com.ibatis.common.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 IbatisExample{
public static void main(String[] args)
throws IOException,SQLException{
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap =
SqlMapClientBuilder.buildSqlMapClient(reader);
//Output all contacts
System.out.println("All Contacts");
List contacts =
sqlMap.queryForList("Contact.getAll",null);
for (Contact c : contacts) {
System.out.print(" " + c.getId());
System.out.print(" " + c.getFirstName());
System.out.print(" " + c.getLastName());
System.out.print(" " + c.getEmail());
System.out.println("");
System.out.println("\n按条件查询 Contacts");
int contactid = 1;
List contacts1 = sqlMap.queryForList("Contact.getById", contactid);
for(Contact c : contacts1){
System.out.print(""+c.getcontactid());
System.out.print(" "+c.getFirstName());
System.out.print(" "+c.getLastName());
System.out.print(" "+c.getEmail());
System.out.println();
}
}
}
}
在你的MySQL数据库中创建表Contact
下载iBatis的JAR文件(ibatis-common-2.jar,ibatis-dao-2.jar,ibatis-sqlmap-2.jar),并将其放置在你的lib目录中
把jar添加到路径
创建Contact.java
创建SqlMapConfig.xml
创建IbatisExample.java
执行IbatisExample文件
输出 :
你的Console应该有像这样的输出 :
2011年12月16日 17:41