mybatis 动态代理方式操作数据库(03)
2021/10/18 2:13:29
本文主要是介绍mybatis 动态代理方式操作数据库(03),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mybatis 动态代理方式操作数据库
注意事项:
/* * 1、方法名和mapper.xml文件中标签的id相同 * 2、该方法的输入参数和mapper.xml文件中标签的parameterType相同 * 3、该方法的返回值和mapper.xml文件中标签的resultType相同 * 除了以上约定,要实现接口中方法和mapper.xml 中的SQL标签一一对应,还需要以下两点: * 1、namespace的值,就是接口的全类名(接口 <---> mapper.xml 一一对应) * 习惯: * SQL映射文件(mapper.xml)和接口放在同一个package下 */ 应用例子: 1、实体类
package com.mybatis02.bean; /** * @author :jack.zhao * @date :2021-10-16 22:55 */ public class Person { public Person() { } public Person(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
2、操作mybatis接口 mapper类型
package com.mybatis02.mapper; import com.mybatis02.bean.Person; import java.util.List;
/** * @author :jack.zhao * @date :2021-10-16 22:55 */
// 操作mybatis接口 public interface PersonMapper { // 1、以下方法和mapper.xml 文件id 一一对应 // 2、方法参数和mapper.xml文件中标签的parameterType相同 // 3、方法的返回值和mapper.xml文件中标签的resultType相同 Person queryPersonById(int id); List<Person> queryListPerson(); void addPerson(Person person); void delStudentById(int id); void updateStudentById(Person person); }
3、mapper.xml 文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis02.mapper.PersonMapper"> <select id="queryPersonById" parameterType="int" resultType="com.mybatis02.bean.Person"> select id,name,age from t_person where id = #{id} </select> <insert id="addPerson" parameterType="com.mybatis02.bean.Person"> INSERT INTO t_person(id,name,age) VALUES (#{id},#{name},#{age}) </insert> <delete id="delStudentById" parameterType="int"> DELETE from t_person where id =#{id} </delete> <update id="updateStudentById" parameterType="com.mybatis02.bean.Person"> UPDATE t_person SET NAME =#{name},age = #{age} where id =#{id} </update> <select id="queryListPerson" resultType="com.mybatis02.bean.Person"> select id,name,age from t_person </select> </mapper>
4、测试类
package com.mybatis02.test; import com.mybatis02.bean.Person; import com.mybatis02.mapper.PersonMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.jupiter.api.Test; import java.io.Reader; import java.util.List; /** * @author :jack.zhao * @date :2021-10-16 22:42 */ public class test { /** * 根据ID查询人的信息 */ @Test public void test01() throws Exception{ Reader reader = Resources.getResourceAsReader("mybatis-02.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); // 动态代理 PersonMapper personMapper = session.getMapper(PersonMapper.class); Person person = personMapper.queryPersonById(1001); System.out.println("根据ID查询人员信息为:"+person); session.close(); } // 查询集合信息 @Test public void selectList() throws Exception{ Reader reader = Resources.getResourceAsReader("mybatis-02.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); // 动态代理 PersonMapper personMapper = session.getMapper(PersonMapper.class); List<Person> personList = personMapper.queryListPerson(); System.out.println("查询所有人员信息为:"+personList); session.close(); } // 增加人员信息 @Test public void addPerson() throws Exception{ Reader reader = Resources.getResourceAsReader("mybatis-02.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); Person persion = new Person(1003,"wangwu",29); // 动态代理 PersonMapper personMapper = session.getMapper(PersonMapper.class); personMapper.addPerson(persion); session.commit(); // 因为配置的是JDBC方式需要手动执行commit操作 System.out.println("添加人员信息成功!"); session.close(); } // 根据ID删除指定信息 @Test public void delPesonByID() throws Exception{ Reader reader = Resources.getResourceAsReader("mybatis-02.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); // 动态代理 PersonMapper personMapper = session.getMapper(PersonMapper.class); personMapper.delStudentById(1003); session.commit(); // 因为配置的是JDBC方式需要手动执行commit操作 System.out.println("删除人员信息成功!"); session.close(); } // 修改人员信息 @Test public void updateStudentById() throws Exception{ Person person = new Person(1003,"maliu",26); Reader reader = Resources.getResourceAsReader("mybatis-02.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); // 动态代理 PersonMapper personMapper = session.getMapper(PersonMapper.class); personMapper.updateStudentById(person); session.commit(); // 因为配置的是JDBC方式需要手动执行commit操作 System.out.println("修改人员信息成功!"); session.close(); } }
这篇关于mybatis 动态代理方式操作数据库(03)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南