Spring 中jdbcTemplate用法
2018-02-05 本文已影响0人
好大一只鹏
方法一:
appplication-context文件配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8" />
<property name="username" value="root" />
<property name="password" value="root123456" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
//将jdbcTemplate属性注入
<bean id="jdbcTemplateDao" class="examples.jdbc.jdbcTemplateDao">
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
</beans>
模型层省略(一个user)。。。
dao层;
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}
public void createTable(){
jdbcTemplate.execute("create table user_table(id integer,firstName varchar(200),lastname varchar(200))");
}
public void updata(){
jdbcTemplate.update("insert into user_table value(1,?,?)","meimei","han");
jdbcTemplate.update("insert into user_table value(2,?,?)","daha","fu");
}
public int count(){
return jdbcTemplate.queryForObject("select count(*) from user_table", Integer.class);
}
public List<User> getUserList(){
//RowMapper 用来封装数据库中的数据封装成用户定义的类
String sql="select * from user_table";
return this.jdbcTemplate.query(sql, new RowMapper<User>(){
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user=new User();
user.setId(rs.getInt("id"));
user.setFirstName(rs.getString("firstName"));
user.setLasrName(rs.getString("lastNmae"));
return user;
}
}
);
}
方法二:
dataSource配置不变
//因为我们在dao层使用setter方法注入dataSource
<bean id="jdbcTemplateDao" class="examples.jdbc.jdbcTemplateDao">
<property name="dataSource" ref="dataSource"/>
</bean>
private JdbcTemplate jdbcTemplate;
//注入方法2
public void setDataSource(DataSource dataSource) {
//此时我们直接new了一个jdbcTemplate实例所以不用配置bean
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
控制层:
ApplicationContext context=new ClassPathXmlApplicationContext("application-context.xml");
JdbcTemplateDao test=context.getBean("jdbcTemplate",JdbcTemplateDao.class);
test.createTable();
List<User> userList=test.getUserList();
for(User u: userList){
System.out.println(u.getId()+":"+u.getFirstName()+":"+u.getLasrName());
}
((ConfigurableApplicationContext)context).close();