Soixante-treize, mise à jour des opérations Spring et DAO()

La méthode update() peut compléter les opérations d'insertion, de mise à jour et de suppression de données. Dans la classe JdbcTemplate, une série de méthodes update() sont fournies, et les méthodes couramment utilisées sont présentées dans le tableau suivant :

méthode illustrer
mise à jour int (chaîne sql) Cette méthode est la surcharge la plus simple de la méthode de mise à jour, elle exécute directement l'instruction SQL entrante et renvoie le nombre de lignes affectées.
mise à jour int(PreparedStatementCreatorpsc) Cette méthode exécute l'instruction renvoyée par PreparedStatementCreator, puis renvoie le nombre de lignes affectées.
mise à jour int(String sql, PreparedStatementSetter pss) Cette méthode définit les paramètres dans l'instruction SQL via le PreparedStatementSetter et renvoie le nombre de lignes affectées.
int update(Stringsql,Object... args) Cette méthode utilise Object... pour définir des paramètres dans l'instruction SQL, exigeant que les paramètres ne puissent pas être NULL, et renvoie le nombre de lignes affectées.

connexion de premier plan

Soixante-douze, opération Spring et DAO execute( ) , est la classe d'implémentation qui injecte l'objet modèle JDBC dans la couche Dao. Pour la gestion des transactions de Spring, il s'agit de l'application d'AOP, et la transaction est tissée dans la méthode commerciale de la couche Service en tant qu'aspect. Modèle Spring et JDBC Afin d'éviter le code complexe et long apporté par l'utilisation directe de JDBC, Spring fournit une puissante classe de modèle --- JdbcTe... https://blog.csdn.net/m0_54925305/article/details/123149019? spm=1001.2014.3001.5501

Ce cas étend la fonction program sur la fonction execute

L'ajout, la suppression et la modification de DB sont réalisés par la méthode update(). Il existe deux méthodes surchargées couramment utilisées pour cette méthode :

  • mise à jour publique int (chaîne sql)
  • public int update (String sql, Object… args)

        Le premier paramètre est l'instruction sql à exécuter et le deuxième paramètre est le paramètre dynamique contenu dans l'instruction sql à exécuter. Sa valeur de retour est le nombre d'enregistrements concernés. Généralement non.

 

 

opération de cas

1. Créer une interface

import java.util.List;

public interface AccountDao {
	// 添加
	public int addAccount(Account account);

	// 更新
	public int updateAccount(Account account);

	// 删除
	public int deleteAccount(int id);
}

2. Créer une classe d'implémentation

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

public class AccountDaoImpl implements AccountDao {
	// 声明JdbcTemplate属性及其setter方法
	private JdbcTemplate jdbcTemplate;

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	// 添加账户
	public int addAccount(Account account) {
		// 定义SQL
		String sql = "insert into account(username,balance) value(?,?)";
		// 定义数组来存放SQL语句中的参数
		Object[] obj = new Object[] { account.getUsername(), account.getBalance() };
		// 执行添加操作,返回的是受SQL语句影响的记录条数
		int num = this.jdbcTemplate.update(sql, obj);
		return num;
	}

	// 更新账户
	public int updateAccount(Account account) {
		// 定义SQL
		String sql = "update account set username=?,balance=? where id = ?";
		// 定义数组来存放SQL语句中的参数
		Object[] params = new Object[] { account.getUsername(), account.getBalance(), account.getId() };
		// 执行添加操作,返回的是受SQL语句影响的记录条数
		int num = this.jdbcTemplate.update(sql, params);
		return num;
	}

	// 删除账户
	public int deleteAccount(int id) {
		// 定义SQL
		String sql = "delete  from account where id = ? ";
		// 执行添加操作,返回的是受SQL语句影响的记录条数
		int num = this.jdbcTemplate.update(sql, id);
		return num;
	}
}

3. Ajouter des dépendances

	<!--定义id为accountDao的Bean-->
	<bean id="accountDao" class="com.Example.jdbc.AccountDaoImpl">
		<!-- 将jdbcTemplate注入到accountDao实例中 -->
		<property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>

Quatrièmement, créez une classe de test

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class JdbcTemplateTest_update {
	public static void main(String[] args) {
		// 加载配置文件
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		// 获取AccountDao实例
		AccountDao accountDao = (AccountDao) applicationContext.getBean("accountDao");
		// 创建Account对象,并向Account对象中添加数据
		Account account = new Account();
		account.setUsername("tom");
		account.setBalance(1000.00);
		// 执行addAccount()方法,并获取返回结果
		int num = accountDao.addAccount(account);
		if (num > 0) {
			System.out.println("成功插入了" + num + "条数据!");
		} else {
			System.out.println("插入操作执行失败!");
		}

		// 修改数据
		Account ud = new Account();
		ud.setId(1);
		ud.setUsername("tom");
		ud.setBalance(2000.00);
		// 执行updata方法并返回结果
		int sum = accountDao.updateAccount(ud);
		if (sum > 0) {
			System.out.println("成功修改了" + sum + "条数据!");
		} else {
			System.out.println("修改操作执行失败!");
		}
	}
	
		//执行findAccountById()方法
}

5. Consulter la base de données

mysql> use spring;
Database changed
mysql> select * from account;
+----+-----------+---------+
| id | username  | balance |
+----+-----------+---------+
|  1 | 孙悟空    |     100 |
|  2 | 唐僧      |    1000 |
|  3 | 猪八戒    |    2000 |
|  4 | 沙僧      |    5000 |
+----+-----------+---------+
4 rows in set (0.04 sec)

6. Fonctionnement du programme

 7. Vérifiez à nouveau la base de données

mysql> select * from account;
+----+-----------+---------+
| id | username  | balance |
+----+-----------+---------+
|  1 | tom       |    2000 |
|  2 | 唐僧      |    1000 |
|  3 | 猪八戒    |    2000 |
|  4 | 沙僧      |    5000 |
|  5 | tom       |    1000 |
+----+-----------+---------+
5 rows in set (0.00 sec)

        Les premières données de compte dans la table de données ont été modifiées et les dernières données ont été ajoutées

Je suppose que tu aimes

Origine blog.csdn.net/m0_54925305/article/details/123169124
conseillé
Classement