myBatis 接口 映射 sql

来源:互联网 发布:淘宝确定开店协议 编辑:程序博客网 时间:2024/05/21 05:57

第一种方式

public interface FeedbackDao extends BaseDao{    //意见反馈    int addFeedback(Map<String,Object> paramsMap) throws DataAccessException;    //评价    int addEvaluation(Map<String,Object> paramsMap) throws DataAccessException;    //获取用户最后的评价    Map<String,Object> getLastEvaluation(Map<String,Object> paramsMap) throws DataAccessException;}

在配置的 mapper文件中

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yc.gypublictravel.mobile.dao.FeedbackDao">    <!-- 意见反馈  HandleState 0:未处理,1:已处理-->    <insert id="addFeedback" parameterType="map">    </insert>    <!--   用户评价     -->    <insert id="addEvaluation" parameterType="map">    </insert>    <!-- 获取最后评论   -->    <select id="getLastEvaluation" parameterType="map" resultType="map">     </select></mapper>

第二种方式,通过注解,直接就写在代码中了

public interface FeedbackDao {      @Select({ "select * from `user` where id = #{id}" })      User getUserById(int id);  }  

测试:

@Test  public void queryListTest() {      SqlSession session = sqlSessionFactory.openSession();      try {          FeedbackDao feed= session.getUserById(IUserMapper.class);          List<User> users = feed.getUserById(1);     } finally {          session.close();      }  }  

按照第一种在 mapper中的方式更灵活,

三,也可以在mapper中设置返回来的 resultType,其实和写好实体类,塞入没多大区别

<resultMap type="User" id="userList"><!-- type为返回列表元素的类全名或别名 -->      <id column="id" property="id" />      <result column="name" property="name" />      <result column="age" property="age" />      <result column="address" property="address" />  </resultMap>  <select id="getUsers" parameterType="string" resultMap="userList"><!-- resultMap为上面定义的User列表 -->      select * from `user` where name like #{name}  </select>  

如果查询结果是 复合形式的

    //   组合类 返回结果  Article +  User   <resultMap type="Article" id="articleList">          <id column="a_id" property="id" />          <result column="title" property="title" />          <result column="content" property="content" />         <association property="user" javaType="User"><!-- user属性映射到User类 -->            <id column="id" property="id" />            <result column="name" property="name" />            <result column="address" property="address" />         </association>     </resultMap>      <select id="getArticlesByUserId" parameterType="int" resultMap="articleList">          select u.id, u.name, u.age, u.address, a.id a_id, a.title, a.content          from article a          inner join user u          on a.user_id=u.id and u.id=#{id}      </select>  

标签有

 <update id="creatLongLatTable" statementType="STATEMENT">        CREATE  TABLE   ${tableName}(           aa  INT        )  </update>

删除

<delete id="deleteTableData" parameterType="Map" statementType="STATEMENT">      <![CDATA[         delete from ${table} where         ${col} < ${date}]]>  </delete>
0 0
原创粉丝点击