列如对性别的插入(临时找的项目)
pojo
package cn.rccs.ssm.pojo; import java.io.Serializable; import org.apache.ibatis.type.Alias; @Alias("Sex") public class Sex implements Serializable{ private int id; private String sex; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } } |
mapper.xml文件
<!-- 通用 插入 --> <insert id="insert" parameterType="map"> ${sql} </insert> |
mapper抽象类
/** * 插入操作 * @param record * @return */ int insert(HashMap<String, Object> record); |
service类
/** * 通用添加操作 * @param params * @param sqlTableName 数据表名 * @return * @throws Exception */ public Boolean insert(Object params ,String sqlTableName) throws Exception { String sql = "insert " + sqlTableName + "("; //获取params类 Class<?> cls = params.getClass(); //获取类里面的(私有)成员变量 Field[] fields = cls.getDeclaredFields(); for (Field f : fields) { //获取私有成员第二步 f.setAccessible(true); if (null == f.getAnnotation(NotInsert.class)) { sql = sql + f.getName() + ","; } } //去掉逗号 sql =sql.substring(0, sql.length()-1); sql = sql + ") values("; for (Field f : fields) { f.setAccessible(true); if (null == f.getAnnotation(NotInsert.class)) { //获取类型 if (f.getType().getSimpleName().equals("Integer")) { //获取字段的值 if (f.get(params) == null) { sql = sql + "'',"; } else { sql = sql + f.get(params) + ","; } } else { //就是string sql = sql + "'" + f.get(params) + "',"; } } } //去掉逗号 sql =sql.substring(0, sql.length()-1); sql = sql + ")"; HashMap<String,Object> map = new HashMap<String,Object>(); map.put("sql", sql); SqlSession session = getBaseSession(); ServiceDaoMapper mapper = session.getMapper(ServiceDaoMapper.class); boolean result = true; try { int count = mapper.insert(map); session.commit(); if (count <= 0) { result = false; } } catch (Exception e) { e.printStackTrace(); result = false; }finally { session.close(); } return result; } |
controller类
/** * 通用插入 * @throws Exception */ @Test public void eest() throws Exception{ Sex s = new Sex(); s.setId(3); s.setSex("变态"); Boolean insert = ServiceDao.getInstance().insert(s, "sex"); System.out.println(insert); } |
结果截图