新彩天欢迎您!
幻海优品

iBATIS - 读操作

我们在上一章讨论了如何使用iBATIS对表执行CREATE操作.本章介绍如何使用iBATIS读取表格.

我们在MySQL中有以下EMPLOYEE表 :

CREATE TABLE EMPLOYEE (   id INT NOT NULL auto_increment,   first_name VARCHAR(20) default NULL,   last_name  VARCHAR(20) default NULL,   salary     INT  default NULL,   PRIMARY KEY (id));

此表只有一条记录如下 :

mysql> select * from EMPLOYEE;+----+------------+-----------+--------+| id | first_name | last_name | salary |+----+------------+-----------+--------+|  1 | Zara       | Ali       |   5000 |+----+------------+-----------+--------+1 row in set (0.00 sec)

员工POJO类

要执行读取操作,我们将修改Employee类Employee.java如下 :

public class Employee {   private int id;   private String first_name;    private String last_name;      private int salary;     /* Define constructors for the Employee class. */   public Employee() {}     public Employee(String fname, String lname, int salary) {      this.first_name = fname;      this.last_name = lname;      this.salary = salary;   }   /* Here are the method definitions */   public int getId() {      return id;   }   public String getFirstName() {      return first_name;   }   public String getLastName() {      return last_name;   }   public int getSalary() {      return salary;   }} /* End of Employee *//

Employee.xml文件

要使用iBATIS定义SQL映射语句,我们将添加< select>在Employee.xml文件中标记并在此标记定义中,我们将定义一个"id",它将在IbatisRead.java文件中用于在数据库上执行SQL SELECT查询.

<?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="Employee">   <insert id="insert" parameterClass="Employee">      INSERT INTO EMPLOYEE(first_name, last_name, salary)      values (#first_name#, #last_name#, #salary#)      <selectKey resultClass="int" keyProperty="id">         select last_insert_id() as id      </selectKey>   </insert>   <select id="getAll" resultClass="Employee">      SELECT * FROM EMPLOYEE   </select></sqlMap>

这里我们没有将WHERE子句与SQL SELECT语句一起使用.我们将在下一章中演示如何在SELECT语句中使用WHERE子句以及如何将值传递给该WHERE子句.

IbatisRead.java文件

此文件具有应用程序级逻辑,用于从Employee表读取记录 :

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 IbatisRead{   public static void main(String[] args)throws IOException,SQLException{      Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");      SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);      /* This would read all records from the Employee table. */      System.out.println("Going to read records.....");      List <Employee> ems = (List<Employee>)         smc.queryForList("Employee.getAll", null);      Employee em = null;      for (Employee e : ems) {         System.out.print("  " + e.getId());         System.out.print("  " + e.getFirstName());         System.out.print("  " + e.getLastName());         System.out.print("  " + e.getSalary());         em = e;          System.out.println("");      }          System.out.println("Records Read Successfully ");   } }

编译并运行

以下是编译和运行的步骤上面提到的软件.在继续进行编译和执行之前,请确保已正确设置PATH和CLASSPATH.

  • 如上所示创建Employee.xml.

  • 如上所示创建Employee.java并进行编译.

  • 如上所示创建IbatisRead.java并编译它.

  • 执行IbatisRead二进制文件以运行程序.

您将得到以下结果,并且将从EMPLOYEE表中读取记录,如下所示;

Going to read records.....   1  Zara  Ali  5000Record Reads Successfully

免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除