ibatis 使用笔记
1.下载ibatis 2.17
http://cvs.apache.org/dist/ibatis/ibatis.java/builds/iBATIS_DBL-2.1.7.597.zip
2.打开MYsql建表
CREATE
TABLE
`category` (
`catid` varchar ( 10 ) NOT NULL ,
`name` varchar ( 80 ) default NULL ,
`descn` varchar ( 255 ) default NULL ,
PRIMARY KEY (`catid`)
) ENGINE = InnoDB DEFAULT CHARSET = gb2312;
`catid` varchar ( 10 ) NOT NULL ,
`name` varchar ( 80 ) default NULL ,
`descn` varchar ( 255 ) default NULL ,
PRIMARY KEY (`catid`)
) ENGINE = InnoDB DEFAULT CHARSET = gb2312;
3.写上配置文件共包括3个配置文件
1.database.properties
2.dao.xml
3.Category.xml
4.sql-map-config.xml
database.properties
driver
=
org.gjt.mm.mysql.Driver
password = wujun
url = jdbc:mysql: // localhost: 3306 / JPETSTORE
username = root
password = wujun
url = jdbc:mysql: // localhost: 3306 / JPETSTORE
username = root
dao.xml配置文件
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE daoConfig
PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"
"http://ibatis.apache.org/dtd/dao-2.dtd" >
< daoConfig >
< context >
< transactionManager type ="SQLMAP" >
< property name ="SqlMapConfigResource"
value ="com/wj/firstibatis/sql-map-config.xml" />
</ transactionManager >
< dao interface ="com.wj.firstibatis.Idao"
implementation ="com.wj.firstibatis.Dao" />
</ context >
</ daoConfig >
<! DOCTYPE daoConfig
PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"
"http://ibatis.apache.org/dtd/dao-2.dtd" >
< daoConfig >
< context >
< transactionManager type ="SQLMAP" >
< property name ="SqlMapConfigResource"
value ="com/wj/firstibatis/sql-map-config.xml" />
</ transactionManager >
< dao interface ="com.wj.firstibatis.Idao"
implementation ="com.wj.firstibatis.Dao" />
</ context >
</ daoConfig >
sql-map-config.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 >
< properties resource ="com/wj/firstibatis/database.properties" />
< transactionManager type ="JDBC" >
< dataSource type ="SIMPLE" >
< property value ="${driver}" name ="JDBC.Driver" />
< property value ="${url}" name ="JDBC.ConnectionURL" />
< property value ="${username}" name ="JDBC.Username" />
< property value ="${password}" name ="JDBC.Password" />
</ dataSource >
</ transactionManager >
< sqlMap resource ="com/wj/firstibatis/Category.xml" />
</ sqlMapConfig >
<! DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd" >
< sqlMapConfig >
< properties resource ="com/wj/firstibatis/database.properties" />
< transactionManager type ="JDBC" >
< dataSource type ="SIMPLE" >
< property value ="${driver}" name ="JDBC.Driver" />
< property value ="${url}" name ="JDBC.ConnectionURL" />
< property value ="${username}" name ="JDBC.Username" />
< property value ="${password}" name ="JDBC.Password" />
</ dataSource >
</ transactionManager >
< sqlMap resource ="com/wj/firstibatis/Category.xml" />
</ sqlMapConfig >
Category.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 ="Category" >
< typeAlias alias ="category" type ="com.wj.firstibatis.CategoryVO" />
< cacheModel id ="categoryCache" type ="LRU" >
< flushInterval hours ="24" />
< property name ="size" value ="100" />
</ cacheModel >
< resultMap id ="categoryResult" class ="category" >
< result property ="categoryId" column ="CATID" />
< result property ="name" column ="NAME" />
< result property ="description" column ="DESCN" />
</ resultMap >
< select id ="getCategory" resultClass ="category" parameterClass ="string" cacheModel ="categoryCache" >
SELECT
CATID AS categoryId,
NAME,
DESCN AS description
FROM CATEGORY
WHERE CATID = #categoryId#
</ select >
< select id ="getCategoryList" resultClass ="category" cacheModel ="categoryCache" >
SELECT
CATID AS categoryId,
NAME,
DESCN AS description
FROM CATEGORY
</ select >
</ sqlMap >
<! DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd" >
< sqlMap namespace ="Category" >
< typeAlias alias ="category" type ="com.wj.firstibatis.CategoryVO" />
< cacheModel id ="categoryCache" type ="LRU" >
< flushInterval hours ="24" />
< property name ="size" value ="100" />
</ cacheModel >
< resultMap id ="categoryResult" class ="category" >
< result property ="categoryId" column ="CATID" />
< result property ="name" column ="NAME" />
< result property ="description" column ="DESCN" />
</ resultMap >
< select id ="getCategory" resultClass ="category" parameterClass ="string" cacheModel ="categoryCache" >
SELECT
CATID AS categoryId,
NAME,
DESCN AS description
FROM CATEGORY
WHERE CATID = #categoryId#
</ select >
< select id ="getCategoryList" resultClass ="category" cacheModel ="categoryCache" >
SELECT
CATID AS categoryId,
NAME,
DESCN AS description
FROM CATEGORY
</ select >
</ sqlMap >
写CategoryVO.java
package
com.wj.firstibatis;
public class CategoryVO {
private String categoryId;
private String name;
private String description;
//getter setter
接着写Idao.java接口
public class CategoryVO {
private String categoryId;
private String name;
private String description;
//getter setter
package
com.wj.firstibatis;
import java.util.List;
public interface Idao {
public List getAll();
public CategoryVO getById(String categoryId);
}
实现类Dao.java
import java.util.List;
public interface Idao {
public List getAll();
public CategoryVO getById(String categoryId);
}
package
com.wj.firstibatis;
import java.util.List;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;
public class Dao extends SqlMapDaoTemplate implements Idao {
public Dao(DaoManager daoManager){
super(daoManager);
}
public List getAll()
{
return this.queryForList("getCategoryList", null);
}
public CategoryVO getById(String categoryId)
{
return (CategoryVO) queryForObject("getCategory", categoryId);
}
}
测试。。
import java.util.List;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;
public class Dao extends SqlMapDaoTemplate implements Idao {
public Dao(DaoManager daoManager){
super(daoManager);
}
public List getAll()
{
return this.queryForList("getCategoryList", null);
}
public CategoryVO getById(String categoryId)
{
return (CategoryVO) queryForObject("getCategory", categoryId);
}
}
public
void
getCategoryAll()
{
try
{
DaoManager daoManager = null ;
Reader reader;
reader = new FileReader( " C:/Documents and Settings/wujun/workspace/ibatisTest/bin/com/wj/firstibatis/dao.xml " );
// reader = new FileReader("com/wj.firstibatis/dao.xml");
daoManager = DaoManagerBuilder.buildDaoManager(reader);
daoManager.startTransaction();
Idao idao = (Idao) daoManager.getDao(Idao. class );
List li = idao.getAll();
for ( int i = 0 ;i < li.size();i ++ )
{
CategoryVO vo = (CategoryVO)li.get(i);
System.out.println( " categoryId " + vo.getCategoryId());
System.out.println( " Name: " + vo.getName());
System.out.println( " Descrition: " + vo.getDescription());
}
}
catch (Exception ee)
{
log.info( " error: " + ee.getMessage());
}
}
{
try
{
DaoManager daoManager = null ;
Reader reader;
reader = new FileReader( " C:/Documents and Settings/wujun/workspace/ibatisTest/bin/com/wj/firstibatis/dao.xml " );
// reader = new FileReader("com/wj.firstibatis/dao.xml");
daoManager = DaoManagerBuilder.buildDaoManager(reader);
daoManager.startTransaction();
Idao idao = (Idao) daoManager.getDao(Idao. class );
List li = idao.getAll();
for ( int i = 0 ;i < li.size();i ++ )
{
CategoryVO vo = (CategoryVO)li.get(i);
System.out.println( " categoryId " + vo.getCategoryId());
System.out.println( " Name: " + vo.getName());
System.out.println( " Descrition: " + vo.getDescription());
}
}
catch (Exception ee)
{
log.info( " error: " + ee.getMessage());
}
}
成功了.....