UserDaoImpl类中有对JdbcTemplate类的引用,因此要在applicationContext.xml文件中实现UserDaoImpl对JdbcTemplate类的依赖注入,则在如上的applicationContext.xml文件的基础上,需要增加如下代码:
<bean id="userDao" class="com.jdbc.UserDaoImpl"> <property name="jdbcTemplate" ref="jdbcTemplate"/> </bean>
客户端首先实现对User对象的添加操作,代码如下:
public class Client { public static void main(String[] args) { // TODO Auto-generated method stub //定义配置文件路径 String path = "com/jdbc/JdbcTemplateBeans.xml"; //加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(path); //获取jdbcTemplate实例 JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate"); String sql = "create table t_user(userid int primary key auto_increment, username varchar(20), password varchar(32))"; jdbcTemplate.execute(sql); //创建数据库表 UserDao userDao = (UserDao) applicationContext.getBean("userDao"); User user1 = new UserFactory().createUser("张三", 1, "qwer"); User user2 = new UserFactory().createUser("李四", 2, "password"); User user3 = new UserFactory().createUser("王五", 3, "wangwu"); //插入三条数据,输出为1则表示插入成功,否则插入失败 System.out.println(userDao.addUser(user1)); System.out.println(userDao.addUser(user2)); System.out.println(userDao.addUser(user3)); } }
在数据库端,通过输入select * from t_user; 查询数据库表中的数据,如下图所示:
如上图中,我们看到李四用户的密码不太合理,需要更改其密码值,则Client的代码如下:
public class Client { public static void main(String[] args) { // TODO Auto-generated method stub //定义配置文件路径 String path = "com/jdbc/JdbcTemplateBeans.xml"; //加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(path); UserDao userDao = (UserDao) applicationContext.getBean("userDao"); User user2 = new UserFactory().createUser("李四", 2, "lisi"); //更新李四用户的密码为lisi userDao.updateUser(user2); } }
查询数据库t_user表可以看到李四用户的密码已经更改为lisi:
最后我们实现对张三用户的删除操作,代码就很简单了,如下:
public class Client { public static void main(String[] args) { // TODO Auto-generated method stub //定义配置文件路径 String path = "com/jdbc/JdbcTemplateBeans.xml"; //加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(path); UserDao userDao = (UserDao) applicationContext.getBean("userDao"); User user1 = new UserFactory().createUser("张三", 1, "qwer"); System.out.println(userDao.deleteUser(user1)); } }
最后可以看到张三用户被无情的从数据库表t_user中删除了:
query()方法
JdbcTemplate对JDBC的流程做了封装,提供了大量的query()方法来处理各种对数据库表的查询操作,常用的query()方法如下: