首先来看看配置文件。据自己目前了解。好像最少得两个。官方的例子就是两个。
我这里举例是三个配置文件
名字跟官方命名的一样,其中这个一个是SqlMapConfig.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/fssoft/SqlMap.properties" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager>
<sqlMap resource="com/fssoft/Log.xml" />
</sqlMapConfig>
然后连接的jdbc的配置文件命名SqlMap.properties ,我这里用的是MySQL
driver=com.mysql.jdbc.Driver url=jdbc\:mysql\://127.0.0.1\:3306/xlnewsdb username=root password=root
以Log表为例子首先要有Log这个实体类
package com.fssoft.vo;
import java.util.Date;
public class Log {
private int lid;
private String message;
private Date ldate;
private String lname;
@Override
public String toString() {
return "Log [ldate=" + ldate + ", lid=" + lid + ", lname=" + lname
+ ", message=" + message + "]";
}
public int getLid() {
return lid;
}
public void setLid(int lid) {
this.lid = lid;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Date getLdate() {
return ldate;
}
public void setLdate(Date ldate) {
this.ldate = ldate;
}
public String getLname() {
return lname;
}
public void setLname(String lname) {
this.lname = lname;
}
}
然后接着是Log.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="Log">
<typeAlias alias="Log" type="com.fssoft.vo.Log"/>
<resultMap id="LogResult" class="Log">
<result property="lid" column="lid"/>
<result property="message" column="message"/>
<result property="ldate" column="ldate"/>
<result property="lname" column="lname"/>
</resultMap>
<select id="selectAllLogs" resultMap="LogResult">
select * from Log
</select>
</sqlMap>
刚开始看官方的配置认为这些似曾相似,但事实上就是以前学习的基础
在这里我只是简单的写了查询,所以接口跟实现类都很简单ILogDAO:
package com.fssoft.dao;
import java.util.List;
import com.fssoft.vo.Log;
public interface ILogDAO {
List<Log> getAllLogs();
}
package com.fssoft.dao.impl;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.fssoft.dao.ILogDAO;
import com.fssoft.vo.Log;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class LogDAOImpl implements ILogDAO {
private static SqlMapClient sqlMapClient = null;
static {
try {
//读取配置
Reader reader = Resources
.getResourceAsReader("com/fssoft/SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
public List<Log> getAllLogs() {
List<Log> log = null;
try {
log = sqlMapClient.queryForList("selectAllLogs");
} catch (SQLException e) {
e.printStackTrace();
}
return log;
}
}
package com.test;
import org.junit.Test;
import com.fssoft.dao.ILogDAO;
import com.fssoft.dao.impl.LogDAOImpl;
import com.fssoft.vo.Log;
public class IbatisTest {
@Test
public void getAll(){
try {
ILogDAO logDAO = new LogDAOImpl();
for (Log log:logDAO.getAllLogs()){
System.out.println(log);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
MyBatis配置与使用
本文介绍了MyBatis的基本配置方法及其实现简单查询的过程,包括配置文件详解、实体类定义、XML映射文件编写以及DAO接口和实现类的设计。
2337

被折叠的 条评论
为什么被折叠?



