根据Contact表我们需要创建一个POJO类,在我们的例子中,数据库vin有一个表Contact,包括四个字段 :
- id
- firstName
- lastName
- email
Contact.java
public 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() {
??? 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 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://192.168.10.112:3306/vin"
? 用户名与密码分别为"root"和"root"
? 我们的SQL语句描述在"Contact.xml"
SqlMapConfig.xml
<?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>
?? <settings useStatementNamespaces="true"/>
???? <transactionManager type="JDBC">
??????? <dataSource type="SIMPLE">
????????? <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
????????? <property name="JDBC.ConnectionURL"
?????????????? value="jdbc:mysql://192.168.10.112:3306/vin"/>
????????? <property name="JDBC.Username" value="root"/>
?? ???????<property name="JDBC.Password" value="root"/>
??????? </dataSource>
????? </transactionManager>
???? <sqlMap resource="Contact.xml"/>
</sqlMapConfig>
映射文件在下面给出,它主要为我们的程序负责执行SQL查询. Contact.xml的代码如下 :
<?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">
?
<sqlMap namespace="Contact">
<!--- Showing all data of table -->
<select id="getAll" resultClass="Contact">
????????? select * from contact
</select>
</sqlMap>
现在为了显示数据库中的数据我们需要创建一个类----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<Contact> contacts = (List<Contact>)
??????? sqlMap.queryForList("Contact.getAll",null);
??????? Contact contact = 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());
??????? 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
? 创建SqlMapConfig.xml
? 创建IbatisExample.java并将其编译
? 执行IbatisExample文件
输出 :
你的命令提示符应该有像这样的输出 :