手记

通过mybatis添加数据记录时,如何返回主键

java

  private SqlSession session = null;    @BeforeClass    public void init() throws IOException {        // SqlSession--->SqlSessionFatory----->SqlSessionFatoryBuilder        SqlSessionFactoryBuilder ssb = new SqlSessionFactoryBuilder();        InputStream ins = Resources.getResourceAsStream("mybatis.xml");        SqlSessionFactory ssf = ssb.build(ins);        session = ssf.openSession();    }    public static void main(String[] args) throws IOException {        SqlSessionFactoryBuilder ssb = new SqlSessionFactoryBuilder();        InputStream ins = Resources.getResourceAsStream("mybatis.xml");        SqlSessionFactory ssf = ssb.build(ins);        SqlSession   session = ssf.openSession();        User user = session.selectOne("cn.java.dao.impl.One2ManyImpl.one2Many");        System.out.println(user);    }    @Test    public void one2Many() {        User user = session.selectOne("cn.java.dao.impl.One2ManyImpl.one2Many");        System.out.println(user);    }a    @Test    public void addUser() {        User user = new User();        user.setPassword("456");        user.setUsername("aaa");        System.out.println(user);        int result = session.insert("cn.java.dao.impl.One2ManyImpl.addUser", user);        // session.commit();        System.out.println("result=" + result);// result代表的是影响的行数        System.out.println("当前插入数据的主键为=" + user.getId());    }    @Test    public void userAdd() {        Map<String, Object> map = new HashMap<String, Object>();        int result = session.insert("cn.java.dao.impl.One2ManyImpl.userAdd", map);        session.commit();        System.out.println("result=" + result);// result代表的是影响的行数        System.out.println("当前插入数据的主键为=" + map.get("id"));

xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="cn.java.dao.impl.One2ManyImpl" >  <resultMap id="BaseResultMap" type="cn.java.entity.User" >   <result property="id" javaType="Long" column="id"/>   <result property="username" javaType="String" column="username"/>   <result property="password" javaType="String" column="password"/>   <collection property="orderList" ofType="cn.java.entity.Order">        <id column="orderId" property="orderid" jdbcType="BIGINT" />        <result column="orderName" property="ordername" jdbcType="VARCHAR" />        <result column="price" property="price" jdbcType="REAL" />        <result column="userId" property="userid" jdbcType="BIGINT" />   </collection>  </resultMap>  <select id="one2Many" resultMap="BaseResultMap">    select * from users u inner join orders o on  u.id=o.`userId`  </select>  <!--     useGeneratedKeys:使用主键作为返回值    keyProperty:将主键值封装到某一个实体类中对应的属性中   -->  <insert id="addUser" useGeneratedKeys="true" parameterType="cn.java.entity.User" keyProperty="id">    INSERT INTO users SET username=#{username},PASSWORD=#{password}  </insert>  <insert id="userAdd" useGeneratedKeys="true" keyProperty="id" parameterType="Map">    INSERT INTO users SET username='xxx',PASSWORD='xxx'  </insert></mapper>

0人推荐
随时随地看视频
慕课网APP