spring Jdbc自动获取主键。
来源:互联网 发布:苹果电脑绘画软件 编辑:程序博客网 时间:2024/05/17 18:13
学习了下springjdbc,感觉挺实用的,相对来说springjdbc 扩展性相当好了
package com.power.dao;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.PreparedStatementCreator;import org.springframework.jdbc.support.GeneratedKeyHolder;import org.springframework.jdbc.support.KeyHolder;import com.power.sql.UpdateSql;import com.power.sql.UpdateSql.SqlType;import com.power.utils.ArrayAssistant;import com.power.utils.FieldAssistant;import com.power.utils.TransformUtils;@SuppressWarnings("unchecked")public class BaseDao<T>{private Class<T> entityClass ; public BaseDao() {this.entityClass = null;Class<?> c = getClass();Type type = c.getGenericSuperclass();if (type instanceof ParameterizedType) {Type[] parameterizedType = ((ParameterizedType) type).getActualTypeArguments();this.entityClass = (Class<T>) parameterizedType[0];}}@Autowiredprivate JdbcTemplate jdbcTemplate ; private UpdateSql updateSql ; public Integer insert(T t){updateSql = new UpdateSql(SqlType.INSERT , t) ; if(null == updateSql.getIdName()){return jdbcTemplate.update( updateSql.getSqlBuffer() , ArrayAssistant.asArray(updateSql.getParam()) ) ;}KeyHolder holder = new GeneratedKeyHolder() ;jdbcTemplate.update(new PreparedStatementCreator() {public PreparedStatement createPreparedStatement(Connection conn)throws SQLException {PreparedStatement ps = conn.prepareStatement( updateSql.getSqlBuffer() , new String[] { updateSql.getIdName() } ) ; List<Object> param = updateSql.getParam() ;int size = param.size() ;for(int x=1;x<=size;x++){ps.setObject(x, param.get(x-1)); }return ps ;}} , holder ) ; int id = TransformUtils.toInt(holder.getKey()) ;FieldAssistant.writeField(updateSql.getIdName(), t , id, true); return TransformUtils.toInt(holder.getKey()) ; }public int update(T t){updateSql = new UpdateSql(SqlType.UPDATE , t) ; int result = jdbcTemplate.update(updateSql.getSqlBuffer(), ArrayAssistant.asArray(updateSql.getParam())) ;return result ; }public int delete(T t){updateSql = new UpdateSql(SqlType.DELETE , t) ; int result = jdbcTemplate.update(updateSql.getSqlBuffer(), ArrayAssistant.asArray(updateSql.getParam())) ;return result ; }public int delete(Integer id){updateSql = new UpdateSql( entityClass ) ; int result = jdbcTemplate.update(updateSql.getSqlBuffer(), id ) ; return result ; }}
UpdateSql 类在:http://blog.csdn.net/hfmbook/article/details/41290641转载请表名出处:http://blog.csdn.net/hfmbook
1 0
- spring Jdbc自动获取主键。
- spring Jdbc自动获取主键。
- spring Jdbc自动获取主键。
- spring jdbc添加数据获取自动生成的主键
- JDBC:获取数据库的自动主键
- Jdbc的扩展--获取自动生成的主键id
- 使用JDBC如何获取数据库自动生成的主键
- 使用JDBC获取数据库自动生成的主键
- 在JDBC中获取数据库自动生成的主键
- Java -- JDBC 获取数据库自动 生成的主键值
- JDBC获取表主键
- jdbc获取insert主键
- JDBC插入数据库获取主键
- JDBC插入数据库获取主键
- 【JDBC】——【大文本、二进制、批处理、获取自动生成主键、事务、事务的隔离级别】
- JDBC中对PreparedStatement的理解对数据库自动生成的主键值的获取
- 获取自动生成的主键
- JDBC 如何获得自动生成的主键
- OS X 和 iOS 中的多线程技术
- android JSON数据格式 解析
- V$ASM_OPERATION
- NGUI 地图移动 边界问题
- 操作远程数据时,无法保存时,可以用sql语句指令修改
- spring Jdbc自动获取主键。
- java.lang.OutOfMemoryError处理错误
- java.lang.Long cannot be cast to java.lang.Integer
- 基于opencv的人脸检测代码
- UVa 10474 - Where is the Marble?
- 关于学习Java
- Android中Activity启动模式
- 用Apache Commons FileUpload组件实现文件上传
- 单位根检验