【例】利用Spring JdbcTemplate对用户进行增、删、改、查操作
一、创建相关类
User类
package com.jdbc.template;
public class User {
private int id;
private String userName;
private String passWord;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", passWord=" + passWord + "]";
}
}
UserDao类
package com.jdbc.template;
import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.JdbcTemplate;
public class UserDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
//添加用户
public void addUser(String userName,String passWord){
String sql="insert into user(userName,passWord) values(?,?)";
jdbcTemplate.update(sql, userName,passWord);
}
//查询用户
public User getUser(String userName){
String sql="select * from user where userName=?";
User user=jdbcTemplate.queryForObject(sql, new MyRowMapper(),userName);
return user;
}
//查询所有用户
public List<Map<String,Object>> select(){
String sql="select * from user";
List<Map<String,Object>> list=jdbcTemplate.queryForList(sql);
return list;
}
//更新用户
public void update(String passWord,String userName){
String sql="update user set passWord=? where userName=?";
jdbcTemplate.update(sql, passWord,userName);
}
//删除用户
public void delete(int id){
String sql="delete from user where id=?";
jdbcTemplate.update(sql, id);
}
}
MyRowMapper类
package com.jdbc.template;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;
public class MyRowMapper implements RowMapper<User>{
@Override
public User mapRow(ResultSet rest, int row) throws SQLException {
int id=rest.getInt("id");
String userName=rest.getString("userName");
String passWord=rest.getString("passWord");
User user=new User();
user.setId(id);
user.setUserName(userName);
user.setPassWord(passWord);
return user;
}
}
Test类
package com.jdbc.template;
import java.util.List;
import java.util.Map;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class Test {
public static void main(String[] args) {
//加载配置spring-jdbcTemplate.xml
ApplicationContext context=new ClassPathXmlApplicationContext("spring-jdbcTemplate.xml");
//获取jdbcTemplate实例
JdbcTemplate jdbcTemplate=context.getBean(JdbcTemplate.class);
//获取userDao实例
UserDao userDao=(UserDao) context.getBean("userDao");
//查询所有用户
List<Map<String, Object>> list=userDao.select();
//遍历
for(int i=0;i<list.size();i++){
Map userMap=list.get(i);
int id=(int) userMap.get("id");
String userName=(String) userMap.get("userName");
String passWord=(String) userMap.get("passWord");
System.out.println(id+" "+userName+" "+passWord);
}
//调用userDao的addUser方法
userDao.addUser("李树生", "lss152");
//调用userDao的getUser方法
User user=userDao.getUser("马向林");
System.out.println(user);
//调用userDao的getUser方法
userDao.update("baixue", "白雪");
//调用userDao的delete方法
userDao.delete(6);
}
}
二、配置spring-jdbcTemplate.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///spring_demo"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!-- 配置JdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="user" class="com.jdbc.template.User"></bean>
<bean id="userDao" class="com.jdbc.template.UserDao">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>
运行结果: