update()方法可以完成插入,更新,删除修改数据的操作。并且在JdbcTemplate类中,提供了一系列的update()方法。
常用方法如下
接下来演示该方法的使用:
1.先创建一个Account类
1 package com.Mark.jdbc.updateFun; 2 3 public class Account 4 { 5 private int id; //账户 6 private String username;//用户名 7 private double balance;//余额 8 9 public void setId(int id) 10 { 11 this.id = id; 12 } 13 14 public int getId() 15 { 16 return id; 17 } 18 19 public void setUsername(String username) 20 { 21 this.username = username; 22 } 23 24 public String getUsername() 25 { 26 return username; 27 } 28 29 public void setBalance(double blance) 30 { 31 this.balance = blance; 32 } 33 34 public double getBlance() 35 { 36 return balance; 37 } 38 public String toString() 39 { 40 return "Account " + "[" + 41 "id="+id+"," + 42 "username="+username + 43 ",blance="+balance+"]"; 44 } 45 }
2.创建一个AccountDao接口
1 package com.Mark.jdbc.updateFun; 2 3 public interface AccountDao 4 { 5 public int addAccount(Account account); 6 public int updateAccount(Account account); 7 public int deleteAccount(int id); 8 }
3.创建接口实现类AccountDaoImpl类
1 package com.Mark.jdbc.updateFun; 2 3 import org.springframework.jdbc.core.JdbcTemplate; 4 5 public class AccountDaoImpl implements AccountDao 6 { 7 // 声明jdbcTemplate属性及其setter方法 8 // 并且在jdbcTemplate类中,提供一系列update()方法 9 private JdbcTemplate jdbcTemplate; 10 11 public void setJdbcTemplate_this(JdbcTemplate jdbcTemplate) 12 { 13 this.jdbcTemplate = jdbcTemplate; 14 } 15 16 @Override//添加账户 17 public int addAccount(Account account) 18 { 19 // 定义Sql 20 String sql="insert into account(username,balance) value(?,?)"; 21 // 定义数组来存储SQL语句影响的纪录条数! 22 Object[] obj= 23 new Object[]{account.getUsername(), account.getBlance()}; 24 int num=this.jdbcTemplate.update(sql,obj); //num即是纪录条数 25 return num; 26 } 27 28 @Override//更新账户 29 public int updateAccount(Account account) 30 { 31 // 定义sql 32 String sql="update account set username=?,balance=? where id=?"; 33 Object[] obj=new Object[] 34 { 35 account.getUsername(), 36 account.getBlance(), 37 account.getId() 38 }; 39 int num=this.jdbcTemplate.update(sql,obj); 40 return num; 41 } 42 43 @Override 44 public int deleteAccount(int id) 45 { 46 String sql="delete from account where id=?"; 47 int num=this.jdbcTemplate.update(sql,id); 48 return num; 49 } 50 }
4.编写ApplicationContext.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> 6 7 <!--配置数据源--> 8 <bean id="dataSourse_id" 9 class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 10 <!--数据库驱动--> 11 <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 12 <!--连接数据库--> 13 <property name="url" value="jdbc:mysql://localhost/spring"/> 14 <!--数据库名、密码--> 15 <property name="username" value="root" /> 16 <property name="password" value="0000"/> 17 </bean> 18 19 <!--配置jdbc模板 id名要与java文件中用到的一致--> 20 <bean id="jdbcTemplate_id" 21 class="org.springframework.jdbc.core.JdbcTemplate"> 22 <!--默认必须使用数据源--> 23 <property name="dataSource" ref="dataSourse_id"/> 24 </bean> 25 <!--新定义一个Bean--> 26 <bean id="accountDao" class="com.Mark.jdbc.updateFun.AccountDaoImpl"> 27 <!--将jdbcTemplate注入到accountDao实例中--> 28 <property name="jdbcTemplate_this" ref="jdbcTemplate_id"/> 29 </bean> 30 </beans>
5.编写测试类updateTest
1 package com.Mark.jdbc.updateFun; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 public class updateTest 7 { 8 public static void main(String[] args) 9 { 10 //1.加载配置文件 11 ApplicationContext applicationContext=new 12 ClassPathXmlApplicationContext("applicationContext.xml"); 13 //2.获取AccountDao实例,在Bean中调用了AccountDaoImpl方法 14 AccountDao accountDao=(AccountDao)applicationContext.getBean("accountDao"); 15 //3.创建Account对象,并向Account对象中添加数据 16 Account account=new Account(); 17 account.setUsername("小飞"); 18 account.setBalance(5000000.00); 19 //执行addAccount()方法,并获取返回结果 20 int num=accountDao.addAccount(account); 21 if (num>0) 22 { 23 System.out.println("成功修改了"+num+"条数据!"); 24 }else 25 { 26 System.out.println("操作失败!"); 27 } 28 } 29 // 其他的方法也可以像上面这样去实现。 30 }
运行结果:成功修改了1条数据!(在此之前要先在数据库中建好account表)
如下
1 CREATE TABLE account( 2 id int PRIMARY KEY auto_increment, 3 username VARCHAR(50), 4 balance DOUBLE )