mybatis的简单sql

5 篇文章 0 订阅

insert:

<!--表的变更-->
<insert id="insert" parameterType="person">
    <!--
        selectKey做主键返回的
        keyProperty:接收返回的主键的属性
        order:insert语句和生成主键的sql的执行顺序mysql是after, oracle是before
        resultType:返回主键的数据类型
        生成主键的sql :last_insert_id()
    -->
    <selectKey keyProperty="id" order="AFTER" resultType="int">
        select last_insert_id()
    </selectKey>
    insert into person_test (<include refid="colums"/>)
    values(#{id},#{name},#{gender},#{address},#{birthday})
</insert>

Test类:

@Test
    public void insert() {
        SqlSession session = sessionFactory.openSession();
        Person person = new Person();
//        person.setId(3);
        person.setName("张三");
        person.setGender(0);
        person.setAddress("上海");
        person.setBirthday(new Date());

        try {
            int insert = session.insert("mappings.PersonTestMapper.insert", person);
            // 数据库的变更都要提交事务
            session.commit();
            System.out.println("总共插入条数为:" + insert);
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        } finally {
            session.close();
        }
    }

update:

<update id="update" parameterType="person">
    update person_test t set
    t.name = #{name},
    t.gender = #{gender},
    t.address = #{address},
    t.birthday = #{birthday}
    where
    t.id = #{id}
</update>

Test类:

@Test
public void update() {
    SqlSession session = sessionFactory.openSession();
    Person person = new Person();
    person.setId(5);
    person.setName("xxxx");
    person.setGender(0);
    person.setAddress("北京");
    person.setBirthday(new Date());

    try {
        int insert = session.update("mappings.PersonTestMapper.update", person);
        // 数据库的变更都要提交事务
        session.commit();
        System.out.println("总共插入条数为:" + insert);
    } catch (Exception e) {
        e.printStackTrace();
        session.rollback();
    } finally {
        session.close();
    }
}

delete:

<delete id="delete" parameterType="person">
    delete from person_test where id = #{id}
</delete>

Test类:

@Test
public void delete() {
    SqlSession session = sessionFactory.openSession();
    Person person = new Person();
    person.setId(9);

    try {
        int count = session.delete("mappings.PersonTestMapper.delete", person);
        // 数据库的变更都要提交事务
        session.commit();
        System.out.println("总共删除条数为:" + count);
    } catch (Exception e) {
        e.printStackTrace();
        session.rollback();
    } finally {
        session.close();
    }
}

insert时,返回新插入一条数据的主键:

<!--表的变更-->
<insert id="insert" parameterType="person">
    <!--
        selectKey做主键返回的
        keyProperty:接收返回的主键的属性
        order:insert语句和生成主键的sql的执行顺序mysql是after, oracle是before
        resultType:返回主键的数据类型
        生成主键的sql :last_insert_id()
    -->
    <selectKey keyProperty="id" order="AFTER" resultType="int">
        select last_insert_id()
    </selectKey>
    insert into person_test (<include refid="colums"/>)
    values(#{id},#{name},#{gender},#{address},#{birthday})
</insert> 

Test类:

//    插入主键返回
    @Test
    public void insertPerson() {
        SqlSession session = sessionFactory.openSession();
        Person person = new Person();
        person.setName("张三");
        person.setGender(0);
        person.setAddress("上海");
        person.setBirthday(new Date());

        try {
            int insert = session.insert("mappings.PersonTestMapper.insert", person);
            // 数据库的变更都要提交事务
            session.commit();
            System.out.println("总共插入条数为:" + insert);
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        } finally {
            session.close();
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值