mybatis動態SQL操作之插入學習筆記
阿新 • • 發佈:2018-04-24
動態SQL操作之插入學習筆記1
import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.SqlSession; import cn.itcast.javaee.mybatis.util.MybatisUtil; /** * 持久層 * @author AdminTC */ public class StudentDao { /** * 插入學生 */ public void dynaInsert(Student student) throws Exception{ SqlSession sqlSession = null; try{ sqlSession = MybatisUtil.getSqlSession(); sqlSession.insert("studentNamespace.dynaInsert",student); sqlSession.commit(); }catch(Exception e){ e.printStackTrace(); sqlSession.rollback(); throw e; }finally{ MybatisUtil.closeSqlSession(); } } public static void main(String[] args) throws Exception{ StudentDao dao = new StudentDao(); //dao.dynaInsert(new Student(1,"哈哈",7000D));//insert into 表名(*,*,*) values(?,?,?) //dao.dynaInsert(new Student(2,"哈哈",null));//insert into 表名(*,*) values(?,?) //dao.dynaInsert(new Student(3,null,7000D));//insert into 表名(*,*) values(?,?) dao.dynaInsert(new Student(4,null,null));//insert into 表名(*) values(?) } }
2
<?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="studentNamespace"> <resultMap type="cn.itcast.javaee.mybatis.app14.Student" id="studentMap"> <id property="id" column="students_id"/> <result property="name" column="students_name"/> <result property="sal" column="students_sal"/> </resultMap> <!-- sql片段對應字段名,id屬性值任意 --> <sql id="key"> <!-- 去掉最後一個, --> <trim suffixOverrides=","> <if test="id!=null"> students_id, </if> <if test="name!=null"> students_name, </if> <if test="sal!=null"> students_sal, </if> </trim> </sql> <!-- sql片段對應?,id屬性值任意 --> <sql id="value"> <!-- 去掉最後一個 -trim suffixOverrides, --> <trim suffixOverrides=","> <if test="id!=null"> #{id}, </if> <if test="name!=null"> #{name}, </if> <if test="sal!=null"> #{sal}, </if> </trim> </sql> <!-- <include refid="key"/>和<include refid="value"/>表示引用上面定義的sql片段 --> <insert id="dynaInsert" parameterType="cn.itcast.javaee.mybatis.app14.Student"> insert into students(<include refid="key"/>) values(<include refid="value"/>) </insert> </mapper>
mybatis動態SQL操作之插入學習筆記