Jour 14 (3) Mybatis met en œuvre des opérations CRUD basées sur l'agent Dao

Préface

L'implémentation générale de l'interface est d'écrire la classe d'implémentation par vous-même

public interface MyDao{
    
    
    public void save();
}

//编写实现类文件
public class MyDaoClass implements MyDao{
    
    
    public void save(){
    
    
         System.out.println("Hello");
    }
}

Vous pouvez également utiliser des agents dynamiques pour vous aider à générer des classes d'implémentation dans la mémoire lorsque le programme est en cours d'exécution.
Par exemple, la méthode ** getMapper () ** peut nous aider à générer la classe d'implémentation.

1. Préparation

1. Écrivez l'interface de la couche de persistance: Interface UserDao
src \ main \ java \ cn \ cyl \ dao \ UserDao.java

public interface UserDao {
    
    
}

2. Écrivez la configuration de mappage de l'interface de la couche de persistance: UserDao.xml
src \ main \ resources \ cn \ cyl \ dao \ UserDao.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--mapper的约束文件-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace要求写接口的全类名:包名+类名=全类名-->
<mapper namespace="cn.cyl.dao.UserDao">

</mapper>

3. Configurez le mappage dans le fichier de configuration de base SqlMapConfg.xml file
src \ main \ resources \ SqlMapConfig.xml

<!--配置多个映射文件,告知mybatis映射配置的位置-->
<mappers>
    <mapper resource="UserMapper.xml"/>
    <mapper resource="cn/cyl/dao/UserDao.xml"/>
</mappers>

4. Classe d'entité utilisateur, table utilisateur
src \ main \ java \ cn \ cyl \ bean \ User.java

public class User {
    
    
    private int id;
    private String username;
    private Date birthday;
    private int sex;
    private String address;
    //省略get set toString方法
    }

Insérez la description de l'image ici

Remarque:

  1. La configuration de mappage de l'interface de couche de persistance et l'interface de couche de persistance doivent être dans le même package
    Insérez la description de l'image ici
  2. La valeur de l'attribut d'espace de noms de la balise mapper dans la configuration de mappage de couche de persistance doit être la classe pleinement qualifiée de l' interface de couche de persistance .
  3. L' attribut id des balises de configuration <select>, <insert>, <delete>, <update> de l'instruction SQL doit être le même que le nom de méthode de l'interface de la couche de persistance .

Deuxièmement, interroger par identifiant

1. Ajoutez une méthode à l'interface UserDao

public interface UserDao {
    
    
    User findById(int i);
}

2. Balise <select> de configuration du fichier de mappage UserDao.xml

<mapper namespace="cn.cyl.dao.UserDao">
    <!--使用代理以后,id必须是方法名-->
    <select id="findById" parameterType="int" resultType="cn.cyl.bean.User">
        select * from user where id = #{id};
    </select>
</mapper>

3. Ajouter une méthode de test de requête

@Test
public void selectTest01(){
    
    
    //创建SqlSession对象
    SqlSession sqlSession = MySessionUtils.getSession();
    //getMapper()方法:对你编写的接口使用动态代理技术实现,直接返回实现类对象,即代理对象
        //代理对象的方法内部就是查询sql,并且执行jdbc代码
    //参数:class<T> aClass   
    UserDao dao = sqlSession.getMapper(UserDao.class);
    //定义变量接收
    User user = dao.findById(1);
    //打印结果
    System.out.println(user);
    //释放资源
    sqlSession.close();
}

4. Sortie de la console
Insérez la description de l'image ici

3. Requête floue basée sur le nom d'utilisateur

1. Ajoutez une méthode à l'interface UserDao

List<User> findByKeyword(String s);

2. Balise <select> de configuration du fichier de mappage UserDao.xml

<select id="findByKeyword" parameterType="string" resultType="User">
    select * from user where username like #{keyword}
</select>

3. Ajouter une méthode de test de requête

@Test
public void selectTest02(){
    
    
    //创建SqlSession对象
    SqlSession sqlSession = MySessionUtils.getSession();
    //返回接口的实现类对象
    UserDao dao = sqlSession.getMapper(UserDao.class);
    //搜索姓张的人
    List<User> list = dao.findByKeyword("张%");
    for (User user:list){
    
    
        System.out.println(user);
    }
    sqlSession.close();
}

4. Sortie de la console
Insérez la description de l'image ici

Quatrièmement, sauvez les utilisateurs

1. Ajoutez une méthode à l'interface UserDao

void saveUser(User user);

2. Balise <insert> de configuration du fichier de mappage UserDao.xml

<insert id="saveUser" parameterType="user">
    insert into user values(null,#{username},#{birthday},#{sex},#{address})
</insert>

3. Ajoutez la méthode de test insérée

@Test
    public void insertTest04(){
    
    
        //创建SqlSession对象
        SqlSession sqlSession = MySessionUtils.getSession();
        
        UserDao dao = sqlSession.getMapper(UserDao.class);
        //定义接口
        User user = new User();
//      user.setId(101);
        user.setUsername("jack");
        user.setAddress("北京");
        user.setBirthday(new Date());
	//执行存储方法
        dao.saveUser(user);
	//提交事务
        sqlSession.commit();
        //释放资源
        sqlSession.close();
    }

4. Sortie de la console
Insérez la description de l'image ici
Insérez la description de l'image ici

Cinq, supprimez les utilisateurs en fonction de leur identifiant

1. Ajoutez une méthode à l'interface UserDao

void deleteById(int i);

2. Balise <delete> de configuration du fichier de mappage UserDao.xml

<delete id="deleteById" parameterType="int">
    delete from user where id = #{id}
</delete>

3. Ajouter et supprimer des méthodes de test

@Test
public void deleteTest03(){
    
    
    //创建SqlSession对象
    SqlSession sqlSession = MySessionUtils.getSession();
    //返回接口的实现类对象
    UserDao dao = sqlSession.getMapper(UserDao.class);
    //删除id为104的用户
    dao.deleteById(104);
    //提交事务
    sqlSession.commit();
    //释放资源
    sqlSession.close();
}

4. Sortie de la console
Insérez la description de l'image ici
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_43639081/article/details/108822170
conseillé
Classement