使用JDBC模板更新数据库
2014-04-02 16:38
435 查看
1、在applicationContext.xml中配置数据源
2、dao接口:
3、dao接口实现:
4、批量上传:
5、使用Spring管理jdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>在daoimpl中
使用JdbcDaoSupport管理jdbcTemplate模板
需要继承JdbcDaoSupport,并注入dataSource,直接使用getJdbcTemplate()获取模板对象
public class JdbcDao<T> extends JdbcDaoSupport implements CommDao<T> {
@Resource
public void setSuperDataSource(BasicDataSource dataSource) {
super.setDataSource(dataSource);
}
<context:annotation-config /> <context:component-scan base-package="main.java.com"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="url" value="jdbc:mysql://localhost:3306/usermanager?useUnicode=true&characterEncoding=UTF-8"> </property> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="username" value="root"></property> <property name="password" value="liketing"></property> <!--连接池启动时的初始值--> <property name="initialSize" value="1" /> <!--连接池最大值--> <property name="maxActive" value="2" /> <!--最大空闲值--> <property name="maxIdle" va 4000 lue="1" /> <!--最小空闲值--> <property name="minIdle" value="1" /> </bean>
2、dao接口:
public interface CommDao<T> { /** * 添加 * @param obj * @return */ public Serializable add(T obj); }
3、dao接口实现:
@Repository("jdbcDao") public class JdbcDao<T> implements CommDao<T> { @Resource private BasicDataSource dataSource; @Override public Serializable add(T obj) {
//使用jdbc模板 JdbcTemplate jt = new JdbcTemplate(dataSource); System.out.println("jdbc"); Admin admin=(Admin) obj;
//执行更新操作 return jt.update("INSERT INTO `t_users` (`PASSWORD`,`USERNAME`) VALUES (?,?)", new String[]{admin.getPassword(),admin.getUsername()}); } }
4、批量上传:
public Serializable addBatch(final List<T> objList) { JdbcTemplate jt = new JdbcTemplate(dataSource); System.out.println("jdbc"); int[] r=jt.batchUpdate("INSERT INTO `t_users` (`PASSWORD`,`USERNAME`) VALUES (?,?)", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { Admin admin =(Admin)objList.get(i); ps.setString(1, admin.getPassword()); ps.setString(2, admin.getUsername()); } @Override public int getBatchSize() { return objList.size(); } }); for (int i = 0; i < r.length; i++) { System.out.print(r[i]+" "); } return 1; }
5、使用Spring管理jdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>在daoimpl中
@Resource private JdbcTemplate jdbcTemplate;
使用JdbcDaoSupport管理jdbcTemplate模板
需要继承JdbcDaoSupport,并注入dataSource,直接使用getJdbcTemplate()获取模板对象
public class JdbcDao<T> extends JdbcDaoSupport implements CommDao<T> {
@Resource
public void setSuperDataSource(BasicDataSource dataSource) {
super.setDataSource(dataSource);
}
@Override public Serializable add(T obj) { System.out.println("jdbc"); Admin admin=(Admin) obj; //return jt.update(new InsertAdminStatementCreater((Admin)obj)); return getJdbcTemplate().update("INSERT INTO `t_users` (`PASSWORD`,`USERNAME`) VALUES (?,?)", new String[]{admin.getPassword(),admin.getUsername()}); }
}