ibatis-返回结果通过resultMap封装

  1. 云栖社区>
  2. 博客>
  3. 正文

ibatis-返回结果通过resultMap封装

技术小牛人 2017-11-21 21:37:00 浏览527
展开阅读全文
一、创建工程和数据库
    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());
                }
            }
        }

    本文转自  素颜猪  51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1558754


网友评论

登录后评论
0/500
评论
技术小牛人
+ 关注