编程知识 cdmana.com

Ajout, suppression et modification simples de mybatis

MybatisAjouter, supprimer, modifier et vérifier

C'est ma participation11Le défi du mois de juin25Oh, mon Dieu.,Voir les détails de l'événement:2021Un dernier défi

J'ai commencé à étudierMybatisVous pouvez d'abord consulter les documents officiels,MyBatisPrise en charge de la personnalisationSQL、Un excellent cadre de persistance pour les procédures stockées et la cartographie avancée.MyBatisA évité presque toutJDBCCode et réglage manuel des paramètres et extraction des ensembles de résultats.MyBatisSimple à utiliserXMLOu des annotations pour configurer et cartographier les primitives,Interface etJavaDePOJOs(Plain Old Java Objects,OrdinaireJavaObjet)Cartographie des enregistrements dans la base de données.

Passons au sujet: Outils:Navicat premium 、IntelliJ IDEA

Structure simple du Répertoire

image.png

1.CréationmysqlBase de données

image.png Créer unfirend_mqBase de données, Créer un tableau pour users ,Et insérer quelques données

2.Créer un nouveaumavenProjets,Et importer des dépendances

 <dependencies>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <!--AjoutermybatisDépendance-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!--jdbcDrive-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--junitCatégorie d'essai-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
Copier le Code

3.InresourcesNouveau sous le dossiermybatis-config.xml,CompilationmybaitsProfil de base pour

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- configurationProfil de base-->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/firend_mq?useSSL=false&amp;useUnicode=&amp;characterEncodeing=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
<!-- Inscriptionmapper-->
    <mappers>
        <mapper resource="dao/UserMapper.xml"/>
    </mappers>
</configuration>
Copier le Code

Attention:resourceBINDmapper,Chemin requis,Utiliser"/" Connexionmysql Des problèmes de fuseau horaire peuvent survenir avec la base de données ,Vous pouvez lire ce blog IntelliJ IDEAConnexionMysql Base de données et problèmes rencontrés (Plus de détails)

4.CompilationmybatisClasse d'outils

//SqlSessionFactory
public class Mybatisutil {

    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {//Utilisermybaatis Étape 1 SqlSessionFactoryObjet
            String resource="mybatis-config.xml";
            InputStream inputStream= Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //C'est bon. SqlSessionFactory,Comme son nom l'indique,On peut en tirer SqlSession Exemples.SqlSession
    // Fournit l'exécution dans la base de données SQL Toutes les méthodes nécessaires pour commander.Vous pouvez passer par SqlSession  Instance pour exécuter directement  SQL Déclarations

    public static SqlSession getSqlSession(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }
}
Copier le Code

5.CompilationmybatisClasse d'entité

package pojo;

public class User {
    private int id;
    private String username;
    private String password;

    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public User() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

Copier le Code

Les préparatifs préliminaires sont terminés ,Commencez à écrire le Code

6.CompilationDaoInterface de la couche

public interface UserDao {
    //Interroger tous les utilisateurs
    List<User> getUserList();

    //Requête assignéeidUtilisateurs
    User getUserById(int id);

    //Ajouter un utilisateur
    int addUser(User user);

    //Modifier l'utilisateur
    int updateUser(User user);

    //Supprimer un utilisateur
    int deleteUser(int id);
}
Copier le Code

7.Écrire une classe d'implémentation d'interface La classe d'implémentation de l'interface a été créée parUserDaoImplConvertir enMapperConfigurer le dossier

<!--namespace=Lier unDao/MapperInterface-->
<mapper namespace="dao.UserDao">
<!-- selectInstruction de requête -->
    <select id="getUserList" resultType="pojo.User">
        select * from firend_mq.users
    </select>
<!-- SelonidRequête-->
    <select id="getUserById" parameterType="int" resultType="pojo.User">
        select * from firend_mq.users where id = #{id}
    </select>

<!-- Ajouter un utilisateur Propriétés dans l'objet, Peut être retiré directement -->
    <insert id="addUser" parameterType="pojo.User">
        insert into firend_mq.users (id,username,password) value (#{id},#{username},#{password})
    </insert>

    <update id="updateUser" parameterType="pojo.User">
        update firend_mq.users set username=#{username},password=#{password}  where id=#{id};
    </update>

<!-- Supprimer un utilisateur-->
    <delete id="deleteUser" parameterType="int">
        delete from firend_mq.users where id=#{id}
    </delete>
</mapper>
Copier le Code

Attention:

  • Mapper Le Profil doit être situé à mybatis-config.xmlInscription à l'intérieur
  • L'étiquette est le type d'ajout, de suppression et de modification , Écrivez l'original sur l'étiquette sqlDéclarations,Utiliser#{}Transmission de la valeur
  • namespace=Lier unDao/MapperInterface, Ne pas lier les mauvaises interfaces
  • id C'est le nom de la méthode dans l'interface ,Soyez cohérent.
  • parameterType Est le type de paramètre de la méthode ,resultType Est le type de valeur de retour de la méthode pour correspondre à l'interface .

8.Écrire une classe de test

public class UserDaoText {
    //Interroger tous les utilisateurs
    @Test
    public void getUserList(){
        //Première étape:ObtenirsqlSessionObjet
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        //Mode 1:getMapper
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        List<User> userList = mapper.getUserList();
        for (User user : userList) {
            System.out.println(user);
        }
        sqlSession.close();
    }
// Requête assignéeidUtilisateurs
    @Test
    public void getUserById(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
       User user = mapper.getUserById(2);
        System.out.println(user);
        sqlSession.close();
    }
    // Tous les ajouts, suppressions et modifications doivent être soumis à la transaction 
    //Ajouter un utilisateur
    @Test
    public void addUser(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        mapper.addUser(new User(4,"Zhang San","10086"));
        //Soumettre une transaction
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void updateUser(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        mapper.updateUser(new User(4,"Ha Ha!","123"));
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void deleteUser(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        mapper.deleteUser(4);
        sqlSession.commit();
        sqlSession.close();
    }

}
Copier le Code

Une telle simplicité Mybatis L'ajout, la suppression, la modification et la recherche de , Les détails sont indiqués dans le Code par un commentaire .

版权声明
本文为[Manon romantique]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/11/20211125174014043u.html

Scroll to Top