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方法
}
Remarque:
- 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
- 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 .
- 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
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
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
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