iBATIS实现的一个例子
来源:百度文库 编辑:神马文学网 时间:2024/07/06 00:29:03
这里把我学习ibatis时候,一个实现的例子发上来,供参考。工程目录结构如下: //1、SQL MAP配置文件SqlMapConfig.xml
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" />
//2、SQL Map配置文件拥有唯一的元素,这样做后,在属性文件中定义的属性可以作为变量在SQL Map配置文件及其包含的所有SQL Map映射文件中引用SqlMapConfig.xmldriver=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ibatistest;SelectMethod=Cursor;username=xiaofeng
password=xiaofeng//3、SQL Map XML映射person.xml
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
INSERT INTO
STUDENT (Sno,Sname,Ssex,Sage,Sdept)
VALUES (#sno#,#sname#,#ssex#,#sage#,#sdept#)
UPDATE STUDENT
SET Sname= #sname#,
Ssex= #ssex#,
Sage=#sage#,
Sdept=#sdept#
WHERE Sno = #sno#
DELETE STUDENT
WHERE Sno = #sno#
//4、AppSqlConfig.javapackage com.study.xiaofeng;
import com.ibatis.sqlmap.client.SqlMapClient;
import java.io.Reader;
import com.ibatis.common.resources.*;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class AppSqlConfig {
private static final SqlMapClient sqlMap;
static {
try {
String resource ="com/study/xiaofeng/maps/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader (resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException ("Error initializing MyAppSqlConfig class. Cause: "+e);
}
}
public static SqlMapClient getSqlMapInstance () {
return sqlMap;
}
}
//test.javapackage com.study.xiaofeng;
import com.ibatis.sqlmap.client.SqlMapClient;
import java.sql.*;
import java.util.List;
//JTA
import javax.naming.InitialContext;
import javax.transaction.UserTransaction;
public class Test {
public static void update(int no,String name,String sex,int age,String dept){
com.ibatis.sqlmap.client.SqlMapClient client = null;
try{
client=new AppSqlConfig().getSqlMapInstance();
client.startTransaction();
Student student=new Student();
student.setSno(no);
student.setSname(name);
student.setSsex(sex);
student.setSage(age);
student.setSdept(dept);
client.update("updateStudent",student);
client.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally {
try {
client.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void insertStudent(int no,String name,String sex,int age,String dept){
com.ibatis.sqlmap.client.SqlMapClient client = null;
try{
client=new AppSqlConfig().getSqlMapInstance();
client.startTransaction();
Student student=new Student();
student.setSno(no);
student.setSname(name);
student.setSsex(sex);
student.setSage(age);
student.setSdept(dept);
client.insert("insertStudent",student);
client.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally {
try {
client.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//一个对象直接作为属性,实现关联
public static Student getStudent(){
com.ibatis.sqlmap.client.SqlMapClient client = null;
Student student=null;
try{
client=new AppSqlConfig().getSqlMapInstance();
client.startTransaction();
student = (Student)client.queryForObject("getStudent","xiaofeng");
client.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally{
try {
client.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
return student;
}
//多个对象放到List中作为一个属性 实现关联,但是得嵌套查询。 测试一对多的关联查询
//也可以实现多对多
public static void reStudent(String name){
com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
sqlMap=new AppSqlConfig().getSqlMapInstance();
try{
sqlMap.startTransaction();
List studentList=sqlMap.queryForList("getStudent",name);
for(int i=0;i Student student=(Student)studentList.get(i);
System.out.println("姓名(表1):"+student.getSname());
for(int k=0;k SC sc=(SC)student.getSc().get(k);
Course course=(Course)sqlMap.queryForObject("getCourse", sc.getCno());
System.out.print("课程号(表2):"+sc.getCno());
System.out.print("------课程名(表3):"+course.getCname().trim()+"------分数(表2): "+sc.getGrade()+"\n");
}
}
sqlMap.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String args[]){
// update(2004131301,"xiaofeng","男",23,"信息");
reStudent("name2");
Student student=getStudent();
System.out.println("表4 描述:"+student.getIntro().getIdescription());
// insertStudent(2004131305,"xiaofeng5","男",23,"信息"); ;
}
}//Course.javapackage com.study.xiaofeng;
import java.io.Serializable;
public class Course implements Serializable{
private int cno;
private String cname;
private int ccredit;
public int getCno(){
return this.cno;
}
public void setCno(int no){
this.cno=no;
}
public String getCname(){
return this.cname;
}
public void setCname(String name){
this.cname=name;
}
public int getCcredit(){
return this.ccredit;
}
public void setCcredit(int credit){
this.ccredit=credit;
}
}
//Intro.javapackage com.study.xiaofeng;
import java.io.Serializable;
public class Intro implements Serializable{
private int sno;
private String idescription;
public int getSno(){
return this.sno;
}
public void setSno(int sno){
this.sno=sno;
}
public String getIdescription(){
return this.idescription;
}
public void setIdescription(String description){
this.idescription=description;
}
}
//Sc.javapackage com.study.xiaofeng;
import java.io.Serializable;
public class SC implements Serializable{
private int sno;
private int cno;
private int grade;
private Course course;
public int getSno(){
return this.sno;
}
public void setSno(int no){
this.sno=no;
}
public int getCno(){
return this.cno;
}
public void setCno(int no){
this.cno=no;
}
public int getGrade(){
return this.grade;
}
public void setGrade(int grade){
this.grade=grade;
}
public Course getCourse(){
return this.course;
}
public void setCourse(Course course){
this.course=course;
}
}
//Student.javapackage com.study.xiaofeng;
import java.io.Serializable;
import java.util.List;
public class Student implements Serializable{
private int sno;
private String sname;
private String ssex;
private int sage;
private String sdept;
private List sc;
private Intro intro;
public int getSno(){
return this.sno;
}
public void setSno(int no){
this.sno=no;
}
public String getSname(){
return this.sname;
}
public void setSname(String name){
this.sname=name;
}
public String getSsex(){
return this.ssex;
}
public void setSsex(String sex){
this.ssex=sex;
}
public int getSage(){
return this.sage;
}
public void setSage(int age){
this.sage=age;
}
public String getSdept(){
return this.sdept;
}
public void setSdept(String dept){
this.sdept=dept;
}
public List getSc(){
return this.sc;
}
public void setSc(List sc){
this.sc=sc;
}
public Intro getIntro(){
return this.intro;
}
public void setIntro(Intro intro){
this.intro=intro;
}
}
//运行结果如下: 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ice_spar/archive/2007/05/18/1615546.aspx
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" />
//2、SQL Map配置文件拥有唯一的
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ibatistest;SelectMethod=Cursor;username=xiaofeng
password=xiaofeng//3、SQL Map XML映射person.xml
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
INSERT INTO
STUDENT (Sno,Sname,Ssex,Sage,Sdept)
VALUES (#sno#,#sname#,#ssex#,#sage#,#sdept#)
UPDATE STUDENT
SET Sname= #sname#,
Ssex= #ssex#,
Sage=#sage#,
Sdept=#sdept#
WHERE Sno = #sno#
DELETE STUDENT
WHERE Sno = #sno#
import com.ibatis.sqlmap.client.SqlMapClient;
import java.io.Reader;
import com.ibatis.common.resources.*;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class AppSqlConfig {
private static final SqlMapClient sqlMap;
static {
try {
String resource ="com/study/xiaofeng/maps/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader (resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException ("Error initializing MyAppSqlConfig class. Cause: "+e);
}
}
public static SqlMapClient getSqlMapInstance () {
return sqlMap;
}
}
//test.javapackage com.study.xiaofeng;
import com.ibatis.sqlmap.client.SqlMapClient;
import java.sql.*;
import java.util.List;
//JTA
import javax.naming.InitialContext;
import javax.transaction.UserTransaction;
public class Test {
public static void update(int no,String name,String sex,int age,String dept){
com.ibatis.sqlmap.client.SqlMapClient client = null;
try{
client=new AppSqlConfig().getSqlMapInstance();
client.startTransaction();
Student student=new Student();
student.setSno(no);
student.setSname(name);
student.setSsex(sex);
student.setSage(age);
student.setSdept(dept);
client.update("updateStudent",student);
client.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally {
try {
client.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void insertStudent(int no,String name,String sex,int age,String dept){
com.ibatis.sqlmap.client.SqlMapClient client = null;
try{
client=new AppSqlConfig().getSqlMapInstance();
client.startTransaction();
Student student=new Student();
student.setSno(no);
student.setSname(name);
student.setSsex(sex);
student.setSage(age);
student.setSdept(dept);
client.insert("insertStudent",student);
client.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally {
try {
client.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//一个对象直接作为属性,实现关联
public static Student getStudent(){
com.ibatis.sqlmap.client.SqlMapClient client = null;
Student student=null;
try{
client=new AppSqlConfig().getSqlMapInstance();
client.startTransaction();
student = (Student)client.queryForObject("getStudent","xiaofeng");
client.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally{
try {
client.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
return student;
}
//多个对象放到List中作为一个属性 实现关联,但是得嵌套查询。 测试一对多的关联查询
//也可以实现多对多
public static void reStudent(String name){
com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
sqlMap=new AppSqlConfig().getSqlMapInstance();
try{
sqlMap.startTransaction();
List studentList=sqlMap.queryForList("getStudent",name);
for(int i=0;i
System.out.println("姓名(表1):"+student.getSname());
for(int k=0;k
Course course=(Course)sqlMap.queryForObject("getCourse", sc.getCno());
System.out.print("课程号(表2):"+sc.getCno());
System.out.print("------课程名(表3):"+course.getCname().trim()+"------分数(表2): "+sc.getGrade()+"\n");
}
}
sqlMap.commitTransaction();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String args[]){
// update(2004131301,"xiaofeng","男",23,"信息");
reStudent("name2");
Student student=getStudent();
System.out.println("表4 描述:"+student.getIntro().getIdescription());
// insertStudent(2004131305,"xiaofeng5","男",23,"信息"); ;
}
}//Course.javapackage com.study.xiaofeng;
import java.io.Serializable;
public class Course implements Serializable{
private int cno;
private String cname;
private int ccredit;
public int getCno(){
return this.cno;
}
public void setCno(int no){
this.cno=no;
}
public String getCname(){
return this.cname;
}
public void setCname(String name){
this.cname=name;
}
public int getCcredit(){
return this.ccredit;
}
public void setCcredit(int credit){
this.ccredit=credit;
}
}
//Intro.javapackage com.study.xiaofeng;
import java.io.Serializable;
public class Intro implements Serializable{
private int sno;
private String idescription;
public int getSno(){
return this.sno;
}
public void setSno(int sno){
this.sno=sno;
}
public String getIdescription(){
return this.idescription;
}
public void setIdescription(String description){
this.idescription=description;
}
}
//Sc.javapackage com.study.xiaofeng;
import java.io.Serializable;
public class SC implements Serializable{
private int sno;
private int cno;
private int grade;
private Course course;
public int getSno(){
return this.sno;
}
public void setSno(int no){
this.sno=no;
}
public int getCno(){
return this.cno;
}
public void setCno(int no){
this.cno=no;
}
public int getGrade(){
return this.grade;
}
public void setGrade(int grade){
this.grade=grade;
}
public Course getCourse(){
return this.course;
}
public void setCourse(Course course){
this.course=course;
}
}
//Student.javapackage com.study.xiaofeng;
import java.io.Serializable;
import java.util.List;
public class Student implements Serializable{
private int sno;
private String sname;
private String ssex;
private int sage;
private String sdept;
private List sc;
private Intro intro;
public int getSno(){
return this.sno;
}
public void setSno(int no){
this.sno=no;
}
public String getSname(){
return this.sname;
}
public void setSname(String name){
this.sname=name;
}
public String getSsex(){
return this.ssex;
}
public void setSsex(String sex){
this.ssex=sex;
}
public int getSage(){
return this.sage;
}
public void setSage(int age){
this.sage=age;
}
public String getSdept(){
return this.sdept;
}
public void setSdept(String dept){
this.sdept=dept;
}
public List getSc(){
return this.sc;
}
public void setSc(List sc){
this.sc=sc;
}
public Intro getIntro(){
return this.intro;
}
public void setIntro(Intro intro){
this.intro=intro;
}
}
//运行结果如下: 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ice_spar/archive/2007/05/18/1615546.aspx
iBATIS实现的一个例子
一个使用ibatis对数据库增删改查的例子
一个使用ibatis对数据库增删改查的例子
一个ajax的例子(连动列表实现)
Spring+Ibatis处理1对1数据表的例子
计算机科学论坛--一个yale-cas实现单点登录的简单例子实现
一个BPEL的例子
一个BPEL的例子
一个spring的简单例子
一个真实的大学生例子
堕落:一个负面的例子
一个简单的XML Schema的例子
载荷为位置函数的一个例子
使用Hibernate的一个完整例子
C# Remoting的一个简单例子
载荷为位置函数的一个例子
nginx做为反向代理实现负载均衡的例子
spring和ibatis的
iBatis
iBatis
散分,虚函数的一个典型例子
使用JSP + JAVABEAN + XML 开发的一个例子
符德坤:百度渠道扁平是一个失败的例子
对Jena的简单理解和一个例子_1