iBatis ÊÇapache µÄÒ»¸ö¿ªÔ´ÏîÄ¿£¬Ò»¸öO/R Mapping ½â¾ö·½°¸£¬iBatis ×î´óµÄÌØµã¾ÍÊÇСÇÉ£¬ÉÏÊֺܿ졣Èç¹û²»ÐèҪ̫¶à¸´ÔӵŦÄÜ£¬iBatis ÊÇÄܹ»Âú×ãÄãµÄÒªÇóÓÖ×ã¹»Áé»îµÄ×î¼òµ¥µÄ½â¾ö·½°¸£¬ÏÖÔÚµÄiBatis ÒѾ¸ÄÃûΪMybatis ÁË¡£
Student.xmlÀïÃæµÄaddStudent¾ÓÈ»Óиö;½áÊø°¡£¬£¨×Ô¼º×¢Ò⣩
´î½¨iBatis ¿ª·¢»·¾³£º
1 ¡¢µ¼ÈëÏà¹ØµÄjar °ü£¬ibatis-2.3.0.677.jar ¡¢mysql-connector-java-5.1.6-bin.jar
2 ¡¢±àдÅäÖÃÎļþ£º
Jdbc Á¬½ÓµÄÊôÐÔÎļþ
×ÜÅäÖÃÎļþ£¬ SqlMapConfig.xml
¹ØÓÚÿ¸öʵÌåµÄÓ³ÉäÎļþ£¨Map Îļþ£©[code]Demo £º
Student.java:
package com.iflytek.entity;
import java.sql.Date;
/**
* @author xudongwang 2011-12-31
*
* Email:xdwangiflytek@gmail.com
*
*/
public class Student {
// ×¢ÒâÕâÀïÐèÒª±£Ö¤ÓÐÒ»¸öÎ޲ι¹Ôì·½·¨£¬ÒòΪ°üÀ¨HibernateÔÚÄÚµÄÓ³Éä¶¼ÊÇʹÓ÷´ÉäµÄ£¬Èç¹ûûÓÐÎ޲ι¹Ôì¿ÉÄÜ»á³öÏÖÎÊÌâ
private int id;
private String name;
private Date birth;
private float score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString() {
return "id=" + id + "\tname=" + name + "\tmajor=" + birth + "\tscore="
+ score + "\n";
}
}[/code][code]SqlMap.properties £º
Properties´úÂë
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ibatis
username=root
password=123
Student.xml £º
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
insert into
tbl_student(name,birth,score) values
(#name#,#birth#,#score#);
select @@identity as inserted
delete from tbl_student where id=#id#
update tbl_student set
name=#name#,birth=#birth#,score=#score# where id=#id#
Èç¹ûxml ÖÐûÓÐibatis µÄÌáʾ£¬Ôòwindow --> Preference--> XML-->XML Catalog---> µã»÷add
Ñ¡Ôñuri URI: ÇëÑ¡Ôñ±¾µØÎļþϵͳÉÏ
iBatisDemo1/WebContent/WEB-INF/lib/sql-map-config-2.dtd Îļþ£»
Key Type: Ñ¡ÔñSchema Location£»
Key: ÐèÒªÁªÍøµÄ£¬²»½¨ÒéʹÓã»[code]SqlMapConfig.xml £º
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
StudentDao £º
package com.iflytek.dao;
import java.util.List;
import com.iflytek.entity.Student;
/**
* @author xudongwang 2011-12-31
*
* Email:xdwangiflytek@gmail.com
*
*/
public interface StudentDao {
/**
* Ìí¼ÓѧÉúÐÅÏ¢
*
* @param student
* ѧÉúʵÌå
* @return ·µ»ØÊÇ·ñÌí¼Ó³É¹¦
*/
public boolean addStudent(Student student);
/**
* ¸ù¾ÝѧÉúidɾ³ýѧÉúÐÅÏ¢
*
* @param id
* ѧÉúid
* @return ɾ³ýÊÇ·ñ³É¹¦
*/
public boolean deleteStudentById(int id);
/**
* ¸üÐÂѧÉúÐÅÏ¢
*
* @param student
* ѧÉúʵÌå
* @return ¸üÐÂÊÇ·ñ³É¹¦
*/
public boolean updateStudent(Student student);
/**
* ²éѯȫ²¿Ñ§ÉúÐÅÏ¢
*
* @return ·µ»ØÑ§ÉúÁбí
*/
public List
/**
* ¸ù¾ÝѧÉúÐÕÃûÄ£ºý²éѯѧÉúÐÅÏ¢
*
* @param name
* ѧÉúÐÕÃû
* @return ѧÉúÐÅÏ¢Áбí
*/
public List
/**
* ¸ù¾ÝѧÉúid²éѯѧÉúÐÅÏ¢
*
* @param id
* ѧÉúid
* @return ѧÉú¶ÔÏó
*/
public Student selectStudentById(int id);
}
StudentDaoImpl £º
package com.iflytek.daoimpl;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.iflytek.dao.StudentDao;
import com.iflytek.entity.Student;
/**
* @author xudongwang 2011-12-31
*
* Email:xdwangiflytek@gmail.com
*
*/
public class StudentDaoImpl implements StudentDao {
private static SqlMapClient sqlMapClient = null;
// ¶ÁÈ¡ÅäÖÃÎļþ
static {
try {
Reader reader = Resources
.getResourceAsReader("com/iflytek/entity/SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean addStudent(Student student) {
Object object = null;
boolean flag = false;
try {
object = sqlMapClient.insert("addStudent", student);
System.out.println("Ìí¼ÓѧÉúÐÅÏ¢µÄ·µ»ØÖµ£º" + object);
} catch (SQLException e) {
e.printStackTrace();
}
if (object != null) {
flag = true;
}
return flag;
}
public boolean deleteStudentById(int id) {
boolean flag = false;
Object object = null;
try {
object = sqlMapClient.delete("deleteStudentById", id);
System.out.println("ɾ³ýѧÉúÐÅÏ¢µÄ·µ»ØÖµ£º" + object + "£¬ÕâÀï·µ»ØµÄÊÇÓ°ÏìµÄÐÐÊý");
} catch (SQLException e) {
e.printStackTrace();
}
if (object != null) {
flag = true;
}
return flag;
}
public boolean updateStudent(Student student) {
boolean flag = false;
Object object = false;
try {
object = sqlMapClient.update("updateStudent", student);
System.out.println("¸üÐÂѧÉúÐÅÏ¢µÄ·µ»ØÖµ£º" + object + "£¬·µ»ØÓ°ÏìµÄÐÐÊý");
} catch (SQLException e) {
e.printStackTrace();
}
if (object != null) {
flag = true;
}
return flag;
}
public List
List
try {
students = sqlMapClient.queryForList("selectAllStudent");
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public List
List
try {
students = sqlMapClient.queryForList("selectStudentByName",name);
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public Student selectStudentById(int id) {
Student student = null;
try {
student = (Student) sqlMapClient.queryForObject(
"selectStudentById", id);
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
}
TestIbatis.java £º
package com.iflytek.test;
import java.sql.Date;
import java.util.List;
import com.iflytek.daoimpl.StudentDaoImpl;
import com.iflytek.entity.Student;
/**
* @author xudongwang 2011-12-31
*
* Email:xdwangiflytek@gmail.com
*
*/
public class TestIbatis {
public static void main(String[] args) {
StudentDaoImpl studentDaoImpl = new StudentDaoImpl();
System.out.println("²âÊÔ²åÈë");
Student addStudent = new Student();
addStudent.setName("ÀîËÄ");
addStudent.setBirth(Date.valueOf("2011-09-02"));
addStudent.setScore(88);
System.out.println(studentDaoImpl.addStudent(addStudent));
System.out.println("²âÊÔ¸ù¾Ýid²éѯ");
System.out.println(studentDaoImpl.selectStudentById(1));
System.out.println("²âÊÔÄ£ºý²éѯ");
List
for (Student student : mohuLists) {
System.out.println(student);
}
System.out.println("²âÊÔ²éѯËùÓÐ");
List
for (Student student : students) {
System.out.println(student);
}
System.out.println("¸ù¾Ýidɾ³ýѧÉúÐÅÏ¢");
System.out.println(studentDaoImpl.deleteStudentById(1));
System.out.println("²âÊÔ¸üÐÂѧÉúÐÅÏ¢");
Student updateStudent = new Student();
updateStudent.setId(1);
updateStudent.setName("ÀîËÄ1");
updateStudent.setBirth(Date.valueOf("2011-08-07"));
updateStudent.setScore(21);
System.out.println(studentDaoImpl.updateStudent(updateStudent));
}
}[/code]iBatis µÄÓÅȱµã£º
Óŵ㣺
1¡¢¼õÉÙ´úÂëÁ¿£¬¼òµ¥£»
2¡¢ÐÔÄÜÔöÇ¿£»
3¡¢Sql Óï¾äÓë³ÌÐò´úÂë·ÖÀ룻
4¡¢ÔöÇ¿ÁËÒÆÖ²ÐÔ£»
ȱµã£º
1¡¢ºÍHibernate Ïà±È£¬sql ÐèÒª×Ô¼ºÐ´£»
2¡¢²ÎÊýÊýÁ¿Ö»ÄÜÓÐÒ»¸ö£¬¶à¸ö²ÎÊýʱ²»Ì«·½±ã¡£
À´Ô´£ºLinuxÉçÇø