zoukankan      html  css  js  c++  java
  • mybatis~2

    添加用户

    1、映射文件:在User.xml配置文件中添加如下内容

        <!-- 保存用户 -->
        <insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">
            INSERT INTO `user`
            (username,birthday,sex,address) VALUES
            (#{username},#{birthday},#{sex},#{address})
        </insert>

    2、测试程序

    @Test
    public void testSaveUser() {
        // 4. 创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
    
        // 5. 执行SqlSession对象执行保存
        // 创建需要保存的User
        User user = new User();
        user.setUsername("张飞");
        user.setSex("1");
        user.setBirthday(new Date());
        user.setAddress("蜀国");
    
        sqlSession.insert("saveUser", user);
        System.out.println(user);
    
        // 需要进行事务提交
        sqlSession.commit();
    
        // 7. 释放资源
        sqlSession.close();
    }

    保存成功,但是id=0,需要解决id返回不正常的问题。

    解决:mysql自增主键返回

    通过修改User.xml映射文件,可以将mysql自增主键返回:

    <!-- 保存用户 -->
    <insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">
        <!-- selectKey 标签实现主键返回 -->
        <!-- keyColumn:主键对应的表中的哪一列 -->
        <!-- keyProperty:主键对应的pojo中的哪一个属性 -->
        <!-- order:设置在执行insert语句前执行查询id的sql,还是在执行insert语句之后执行查询id的sql -->
        <!-- resultType:设置返回的id的类型 -->
        <selectKey keyColumn="id" keyProperty="id" order="AFTER"
            resultType="int">
            SELECT LAST_INSERT_ID()
        </selectKey>
        INSERT INTO `user`
        (username,birthday,sex,address) VALUES
        (#{username},#{birthday},#{sex},#{address})
    </insert>

    LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。

  • 相关阅读:
    当Java遇到XML 的邂逅+dom4j
    idea集成项目管理工具 --- Maven 并且【配置tomcat】
    C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
    MySQL 中国省市区SQL表数据
    LeetCode-28. 实现 strStr()
    LeetCode-66 加一
    头插法将单链表原地逆转
    LeetCode:27 移除元素
    LeetCode:26删除有序数组中相同的数.(Python3)
    LeetCode-21 有序链表的合并
  • 原文地址:https://www.cnblogs.com/xiaoxli/p/9594530.html
Copyright © 2011-2022 走看看