您的位置:首页 > 数据库

使用JDBC模板更新数据库

2014-04-02 16:38 435 查看
1、在applicationContext.xml中配置数据源
<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()});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdbc java string