Mode Db + Record original de JFinal


La classe Db et la classe Record qui la prend en charge fournissent des fonctions d'exploitation de base de données plus riches en plus de la classe Model. Lors de l'utilisation des classes Db et Record, il n'est pas nécessaire de mapper les tables de la base de données. Record est équivalent à un modèle général. Voici quelques utilisations courantes du mode Db + Record :

//Créez un objet d'enregistrement avec un attribut de nom de James et un attribut d'âge de 25 et ajoutez-le à la base de données
Utilisateur d'enregistrement = new Record().set ("name", "James ").set("age", 25); Db.save("user", user);

//Supprimer l'enregistrement dans la table user avec la valeur id 25
Db.deleteById ("user", 25);

// Interrogez l'enregistrement avec la valeur d'identifiant 25, changez son attribut de nom en James et mettez-le à jour dans la base de données user = Db.findById("user", 25).set("name" , "James"); Db.update( "user", user);

//Obtenir l'attribut name de l'utilisateur
String userName = user.getStr("name");
//Obtenir l'attribut age de l'utilisateur
Integer userAge = user.getInt("age");

// Interroger tous les utilisateurs âgés de plus de 18 ans
List<Record> users = Db.find("select * from user which age > 18");

// Interroger les utilisateurs âgés de plus de 18 ans dans la pagination, page actuelle Le nombre est de 1, 10 utilisateurs par page
Page<Record> userPage = Db.paginate(1, 10, "select *", "from user Where age > ?", 18);

Voici un exemple de traitement de transaction:

boolean success = Db.tx(new Iatom(){
public boolean run() throws SQLException {
int count = Db.update("mettre à jour le compte défini cash = cash - ? où id = ?", 100, 123);
int count2 = Db.update("mettre à jour le compte défini cash = cash + ? où id = ?", 100, 456 );
return count == 1 && count2 == 1;
}});

Les deux opérations de mise à jour de la base de données ci-dessus sont exécutées en une seule transaction. Si une exception se produit pendant l'exécution ou si la méthode Invocation() renvoie false, le la transaction sera automatiquement annulée.