二.Mybatis基本操作

一.增删改
增:

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();//事务提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值