• spring技术———数据库开发之update()


      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 )
  • 相关阅读:
    curl命令
    sublime 光标选中多行
    mysql删除重复记录并且只保留一条
    Laravel 如何实现 Excel 导入及导出功能
    laravel中DB查询数据库后,返回的对象转为数组
    【文件上传/解析技巧拓展】————1、我的WafBypass之道(Upload篇)
    【文件包含技巧拓展】————5、文件包含漏洞(绕过姿势)
    【文件包含技巧拓展】————4、文件包含漏洞(下)
    【文件包含技巧拓展】————3、文件包含漏洞(上)
    【文件包含技巧拓展】————2、zip或phar协议包含文件
  • 原文地址:https://www.cnblogs.com/Mark-blog/p/8597327.html
Copyright © 2020-2023  润新知