二.Mybatis基本操作

来源:互联网 发布:网络键盘手会判刑几年 编辑:程序博客网 时间:2024/06/06 12:25

一.增删改
增:

mapping文件<insert id="insertUser" parameterType="JiKeUser" statementType="PREPARED"        keyProperty="id" useGeneratedKeys="true">        insert into JikeUser        (userName,password) values        (#{userName},#{password})    </insert>    此处JiKeUser别名,需要在基本配置文件配置环境前配置别名     <typeAliases>    <typeAlias alias="JiKeUser"  type="jike.book.pojo.JiKeUser" />    <typeAlias alias="Author"  type="jike.book.pojo.Author" />  </typeAliases>

测试:开启session后,新建一个映射pojo,赋予属性后,用
session.insert(“insertUser”, jku);//前一个参数是sqlID,后一个参数是赋值后实体

改:

mapping文件:<update id="updateUser" parameterType="JiKeUser">        UPDATE JiKeUser SET        userName=#{userName},        password=#{password}        WHERE id = #{id}    </update>
测试:开启session后JiKeUser jku2=new JiKeUser();jku2.setUserName("jike00100");jku2.setPassword("666666");jku2.setId(2);session.update("updateUser", jku2);关session

删除也相差不大

Mybatis保留了接口注解sql,但是有局限性,建议尽量不要使用。
二.查询
传入hashMap:

<select id="loginSelect" resultType="JiKeUser" parameterType="hashmap">        select * from JikeUser where userName=#{userName} and password=#{password}    </select>

测试:

HashMap<String,String> hm=new HashMap();hm.put("userName", "jike00100");hm.put("password","666666");JiKeUser temp=session.selectOne("loginSelect",hm);if(temp!=null){    System.out.println("登陆成功!");}

也可以传入的是实体。

如果返回的是List:

mapping:<select id="selectJiKeUserList" resultType="JiKeUser">        select * from JikeUser</select>

测试:

List<JiKeUser> ap=session.selectList("selectJiKeUserList");

resultMap解决复杂查询映射问题:

mapping:<resultMap id="JiKeUserMap" type="JiKeUser">     <id property="id" column="id" />     <result property="userName" column="userName"/>     <result property="password" column="password"/> </resultMap><select id="selectUsers" resultMap="JiKeUserMap">     select id, userName, password from JiKeUser   </select>测试:List<JiKeUser> ap=session.selectList("selectUsers");

三.Mybatis事务处理:
需要在环境中添加配置事务
有两种方式:JDBC MANGED(第三方插件)

try{        session=sqlMapper.openSession(false); //关闭自动提交        ……        session.commit(); //提交事务    }catch(Exception e){   session.rollback();} //回滚事务finally{   session.close();} //关闭session

mapping:

<insert id="insertAuthor" parameterType="Author" statementType="PREPARED">            insert into Author(userID,realName,IDCard)                 values(#{jikeUser.id},#{realName},#{IDCard})    </insert>

测试:

JiKeUser one=new JiKeUser();one.setUserName("author001");one.setPassword("123456");session.insert("insertUser",one);System.out.println("新加入的user id="+one.getId());Author at=new Author();at.setJikeUser(one);at.setRealName("一个大牛");session.insert("insertAuthor", at);session.commit();//事务提交
1 0
原创粉丝点击