学习mybatis(二)------CRUD

上一节写了使用mybatis返回整个表单,本节在上一节的基础上实现增删改查。
由于mybatis的便捷性,添加sql语句只需要修改的地方有三个:
1、接口
2、接口xml文件
3、test文件

1、查询用户
(1)在接口中添加方法getIdData:

public interface Dao {
    List<Myda> getData(); //获得表单
    Myda getIdData(int id); //根据用户id查询
}

(2)接口xml文件中添加sql语句:
其中parameterType为参数类型。
#{} 为占位符:#{}速度快,能防止sql注入,是占位符方式,先预编译,然后填充参数,字符串格式,相当于填空题 用户名=(___),参数只是下划线上的内容;
${}是直接拼接到语句上,执行语句,对于上面那道填空题 ,这种方式需要自己拼括号和参数,但是也可以拼接想执行的任何语句,也就是传说中的sql注入。

<select id="getIdData" resultType="com.pht.dao.Myda" parameterType="int">
    select * from majinbuu1.pht_01 where id_0=#{id}
    </select>

(3)在test文件中测试:

	@Test
    public void getid(){
        //头尾语句都不变,即获取sqlsession对象以及关闭对象
        SqlSession obj=Utils.getsqlseesion();
        Dao dao=obj.getMapper(Dao.class);

        Myda data_id=dao.getIdData(1);
        System.out.println(data_id);

        obj.close();
    }

(4)查询结果:
在这里插入图片描述
2、插入一个用户
与查询类似:

void insertUser(Myda user); //添加

values参数名称要与实体类中的属性名称对应(细节很多):

<insert id="insertUser" parameterType="com.pht.dao.Myda">
        insert into majinbuu1.pht_01 (id_0,name_0) values (#{id_0},#{name_0})
    </insert>

直接在insertUser中new一个Myda对象:

@Test
    public void inserttest(){
        SqlSession obj=Utils.getsqlseesion();
        Dao dao=obj.getMapper(Dao.class);

        dao.insertUser(new Myda("obama",5));

        obj.close();
    }

以上可以实现添加吗?不行,增删改需要提交事务!!!
因此,在test中添加提交事务语句:

@Test
    public void inserttest(){
        SqlSession obj=Utils.getsqlseesion();
        Dao dao=obj.getMapper(Dao.class);

        dao.insertUser(new Myda("obama",5));
		obj.commit();
        obj.close();
    }

添加成功:
在这里插入图片描述

3、修改用户

void updateUser(Myda user); //修改用户名
<update id="updateUser" parameterType="com.pht.dao.Myda">
        update majinbuu1.pht_01 set name_0=#{name_0}  where id_0=#{id_0};
    </update>
    @Test
    public void upd(){
        SqlSession obj=Utils.getsqlseesion();
        Dao dao=obj.getMapper(Dao.class);

        dao.updateUser(new Myda("trump",5));
        obj.commit();
        obj.close();
    }

结果:
在这里插入图片描述
4、删除用户:

void deletUser(int id);
<delete id="deletUser" parameterType="int">
        delete from majinbuu1.pht_01 where id_0=#{id_0}
    </delete>
    @Test
    public void deletetest(){
        SqlSession obj=Utils.getsqlseesion();
        Dao dao=obj.getMapper(Dao.class);

        dao.deletUser(5);

        obj.commit();
        obj.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值