iBATIS创建操作
来源:互联网 发布:apple mac mini 编辑:程序博客网 时间:2024/04/30 10:18
若要使用iBATIS执行的任何CRUD(创建,写入,更新和删除)操作,需要创建一个的POJO(普通Java对象)类对应的表。本课程介绍的对象,将“模式”的数据库表中的行。
POJO类必须实现所有执行所需的操作所需的方法。
我们已经在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));
Employee POJO 类:
我们会在Employee.java文件中创建Employee类,如下所示:
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; }} /* End of Employee */
可以定义方法来设置表中的各个字段。下一章节将告诉你如何获得各个字段的值。
Employee.xml 文件:
要定义使用iBATIS SQL映射语句中,我们将使用<insert>标签,这个标签定义中,我们会定义将用于在IbatisInsert.java文件的数据库执行SQL INSERT查询“id”。
<?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> </sqlMap>
这里parameterClass:可以采取一个值作为字符串,整型,浮点型,double或根据要求任何类的对象。在这个例子中,我们将通过Employee对象作为参数而调用SqlMap类的insert方法。
如果您的数据库表使用IDENTITY,AUTO_INCREMENT或串行列或已定义的SEQUENCE/GENERATOR,可以使用<selectKey>元素在的<insert>语句中使用或返回数据库生成的值。
IbatisInsert.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 IbatisInsert{ public static void main(String[] args) throws IOException,SQLException{ Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml"); SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd); /* This would insert one record in Employee table. */ System.out.println("Going to insert record....."); Employee em = new Employee("Zara", "Ali", 5000); smc.insert("Employee.insert", em); System.out.println("Record Inserted Successfully "); }}
编译和运行:
下面是步骤来编译并运行上述软件。请确保已在进行的编译和执行之前,适当地设置PATH和CLASSPATH。
创建Employee.xml如上所示。
创建Employee.java如上图所示,并编译它。
创建IbatisInsert.java如上图所示,并编译它。
执行IbatisInsert二进制文件来运行程序。
会得到下面的结果,并创纪录的将在EMPLOYEE表中创建。
$java IbatisInsertGoing to insert record.....Record Inserted Successfully
去查看EMPLOYEE表,它应该有如下结果:
mysql> select * from EMPLOYEE;+----+------------+-----------+--------+| id | first_name | last_name | salary |+----+------------+-----------+--------+| 1 | Zara | Ali | 5000 |+----+------------+-----------+--------+1 row in set (0.00 sec)
- iBATIS创建操作
- IBatis--- 创建SqlMapClient
- iBatis insert操作陷阱
- ibatis批量操作
- ibatis操作clob
- Ibatis 5-删除操作
- ibatis操作clob
- IBATIS 批量更改操作
- Ibatis批量操作
- ibatis中in操作
- iBATIS批量操作
- spring ibatis操作CLOB
- spring ibatis 操作BLOB
- ibatis批量操作
- iBatis基本操作
- ibatis批量操作
- iBatis操作CLOB数据
- iBatis 非查询操作
- windows下Apache2.2.17+2个tomcat6.0.20集群(新手)
- 开发问题集
- CSU 1271: Brackets Sequence(数学啊 )
- MySQL性能优化的最佳20+条经验
- 数据库行转列的sql语句 (抛砖引玉)
- iBATIS创建操作
- codeforces 219a k重复字符串。
- 十种排序算法(java描述)
- Bootstrap3简单好用,轻松实现手机适配
- 在ubuntu下安装ulipad
- iBATIS读取操作
- 在mysql命令行里面用AUTO_INCREMENT自动编号,且必须与PRIMARY KEY组合使用
- JAVA多继承(multiple inheritance)的实现
- 让Hibernate支持DBCP数据源