您的位置:首页 > 其它

ibatis-返回结果通过resultMap封装

2014-09-27 11:33 429 查看
一、创建工程和数据库
1.工程名:ibatisdemo1
数据库名:ibatis
创建表:student
CREATE TABLE `student` (
`sid` int(11) NOT NULL,
`sname` varchar(30) DEFAULT NULL,
`major` varchar(30) DEFAULT NULL,
`birth` date DEFAULT NULL,
`score` decimal(10,0) DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
添加测试数据
insert into
`student`(`sid`,`sname`,`major`,`birth`,`score`)
values (1,'ss','ff','2014-03-06','22');
insert into
`student`(`sid`,`sname`,`major`,`birth`,`score`)
values (2,'vv','ee','2014-03-05','33');
二、添加相关jar
1.在项目中创建lib目录
/lib
2.在lib目录下添加jar包
mysql-connector-java.jar
ibatis-2.3.3.720.jar
junit-4.4.jar
三、添加配置文件
1.在项目中创建conf目录
/conf
2.在conf目录添加属性文件
属性文件名称:SqlMap.properties
内容:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ibatis
username=root
password=root
3.在conf目录添加配置文件
配置文件名称: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="SqlMap.properties"/>
<!-- 配置事务 -->
<transactionManager type="JDBC" commitRequired="false">
<!-- 配置数据源 -->
<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>
</sqlMapConfig>
四、创建与数据库表中相关的javabean和映射文件
1.在src下创建包
cn.jbit.domain
2.在包下创建类
类名:Student.java
内容:
public class Student {
private Integer sid;
private String sname;
private String major;//主修专业
private Date birth;
private float socre;
// get and set 省略
}
3.在包下创建映射文件
映射文件名:Student.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>
<typeAlias alias="Student" type="cn.jbit.domain.Student"/>

<!-- 返回结果通过map封装 -->
<resultMap class="cn.jbit.domain.Student" id="resultselectallbymap">
<result property="sid" column="sid"/>
<result property="score" column="score"/>
<result property="sname" column="sname"/>
<result property="birth" column="birth"/>
<result property="major" column="major"/>
</resultMap>
<select id="selectallbymap" resultMap="resultselectallbymap">
SELECT
*
FROM
Student
</select>
</sqlMap>
4.在核心配置文件中添加引用映射文件
<!-- 加载映射文件 -->
<sqlMap resource="cn/jbit/domain/Student.xml"/>
五、设计DAO层
接口:IStudentDao.java
public interface IStudentDao {
/**
* map方式查询
*/
public List<Student> selectallbymap();
}
实现类:StudentDaoImpl.java
public class StudentDaoImpl implements IStudentDao{
private static SqlMapClient sqlMapClient;
static{
try {
//加载配置文件
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
//实例化SqlMapClient
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
//关闭
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public List<Student> selectallbymap() {
List<Student> students=null;
try {
students = sqlMapClient.queryForList("selectallbymap");
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
}
六、设计SERVICE层
接口:IStudentService.java
public interface IStudentService {
public List<Student> selectallbymap();
}
实现类:StudentServiceImpl.java
public class StudentServiceImpl implements IStudentService {
private IStudentDao studentDao = new StudentDaoImpl();
@Override
public List<Student> selectallbymap() {
return studentDao.selectallbymap();
}
}
七、测试
1.在项目中创建test目录
/test
2.在test目录下创建包
cn.jbit.junit
3.在包下创建测试类
类名:StudentTest.java
内容:
public class StudentTest {
IStudentService studentService = new StudentServiceImpl();
/**
* map查询
*/
@Test
public void selectallbymap(){
List<Student> students =studentService.selectallbymap();
for (Student student : students) {
System.out.println(student.getSid());
}
}
}

本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1558754
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: