Mybatis_插入数据

Posted lonske

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis_插入数据相关的知识,希望对你有一定的参考价值。

插入一条数据

<insert id = "insert" parameterType="xxx.x.Person">
        insert into person (person_id, gender, person_addr, birthday)
        values(#{personId},#{name},#{gender},#{personAddr},#{birthday})
    </insert>

java语句

SqlSessionFactory sessionFactory;
    public void setUp() throws Exception {
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        sessionFactory = new SqlSessionFactoryBuilder().build(in);
    }
    public void insert() {
        //创建SqlSession
        SqlSession session = sessionFactory.openSession();
        try {
            Person p = new Person();
            p.setName("李四");
            p.setGender(1);
            p.setAddress("上海");
            p.setBirthday(new Date());
            int count = session.insert("xxx.x.mapper.PersonTestMapper.insert",p); //此处有一个返回值,是影响的行数
            session.commit(); //数据库的变更(增删改)都要提交事务
            System.out.println(count);
        }catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        }finally {
            session.close();
        }
        
    }

 

返回主键插入:

<!--
        selectKey:是做主键返回的
        keyProperty:接收返回主键的属性
        order:insert语句和生成主键的sql的执行顺序mysql是AFTER,oracle是BEFORE
        resultType:返回主键的数据类型
        生成主键的sql select LAST_INSERT_ID()
    -->        
        <selectKey keyProperty="personId" order="AFTER" resultType="java.lang.Integer">
            select LAST_INSERT_ID()
        </selectKey>
        insert into person (person_id, gender, person_addr, birthday)
        values(#{personId},#{name},#{gender},#{personAddr},#{birthday})
    </insert>

 

以上是关于Mybatis_插入数据的主要内容,如果未能解决你的问题,请参考以下文章

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

MyBatis如何防止SQL注入

MyBatis怎么防止SQL注入

MyBatis查询mysql数据返回null

将代码片段插入数据库并在 textarea 中以相同方式显示

mybatis以及预编译如何防止SQL注入