1.返回自增长的主键
第一种方法:
Student.java包括id,stuNum,stuName三个属性
数据库中student表包含三个属性包括id stu_num,stu_name三列,id为主键,自增长。
StudentMapper.xml配置文件
<!-- 当实体属性和表字段名不相同的时候, 必须书写以下代码-->
<resultMap type="returnprimarykey.Student" id="studentMap">
<id property="id" column="id"/>
<result property="stuNum" column="stu_num"/>
<result property="stuName" column="stu_name"/>
</resultMap>
<insert id="addStudent" parameterType="returnprimarykey.Student">
<selectKey keyColumn="id" keyProperty="id" resultType="int" order="AFTER">
select last_insert_id()
</selectKey>
insert into student1(stu_num,stu_name) values(#{stuNum},#{stuName})
</insert>
测试类中:
package returnprimarykey;
import org.apache.ibatis.session.SqlSession;
import util.MybatisUtil;
/**
* 持久层
* @author user
*
*/
public class GradesStudentDao {
/**
* 查询java班级学科有哪些学生
*@param name 学科的名
/***
* 查询某个学生是哪个学科的学生
* @param name 代表学生姓名
* @return
*/
public int addStudent(Student student) {
SqlSession sqlSession = null;
try {
sqlSession = MybatisUtil.getSqlSession();
sqlSession.insert("studentNamespace.addStudent", student);
sqlSession.commit();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
MybatisUtil.closeSqlSession();
}
return student.getId();
}
public static void main(String[] args) {
GradesStudentDao dao = new GradesStudentDao();
int a = dao.addStudent(new Student("999999999999", "李四"));
System.out.println("a = "+a);
}
}
这里返回的a 就是自增长的主键
第二种方法:
student,java和数据库与第一种方法的结构一样
配置文件StudentMapper.xml:
<insert id="addStudent" parameterType="returnprimarykey.Student" useGeneratedKeys="true" keyProperty="id">
insert into student1(stu_num,stu_name) values(#{stuNum},#{stuName})
</insert>
返回非自增长的主键:
配置文件:
<!-- 返回非自增的主键,通过mysql的uuid返回一个随机字符串 在上面的配置中需要注意,
执行uuid函数的操作需要在执行insert语句之前,因此order的值为before,
resultType为执行查询之后的返回值类型String。-->
<insert id="addStudent" parameterType="returnprimarykey.Student">
<selectKey keyColumn="id" keyProperty="id" resultType="string" order="AFTER">
select uuid()
</selectKey>
insert into student1(id,stu_num,stu_name) values(#{id},#{stuNum},#{stuName})
</insert>