当前位置: 首页 > news >正文

下载搭建网站软件下载金华市开发区人才网

下载搭建网站软件下载,金华市开发区人才网,手机创建网页快捷方式,高端网站特色MyBatis 注解开发详解 MyBatis 支持使用注解来进行数据库操作。注解方式将 SQL 语句直接写在 Java 接口中#xff0c;通过注解来完成 CRUD#xff08;增删改查#xff09;操作#xff0c;省去了使用 XML 配置的繁琐步骤。这种方式适合简单项目或快速原型开发#xff0c;因…MyBatis 注解开发详解 MyBatis 支持使用注解来进行数据库操作。注解方式将 SQL 语句直接写在 Java 接口中通过注解来完成 CRUD增删改查操作省去了使用 XML 配置的繁琐步骤。这种方式适合简单项目或快速原型开发因为它更直观可以直接在代码中查看和修改 SQL 语句。 然而在实际开发中更推荐使用 XML 配置的方式进行 MyBatis 开发。这样做的主要好处是当需要修改 SQL 语句时不需要更改 Java 代码避免频繁修改源代码带来的风险。此外XML 配置文件的形式更有利于 SQL 语句的管理和维护尤其是在项目复杂度较高、SQL 语句较多的情况下。 以下是使用注解方式进行 MyBatis 开发的详细说明。 一、使用注解完成 CRUD 操作 1. 配置文件 SqlMapConfig.xml 在 SqlMapConfig.xml 中注册 Mapper 接口有两种常见方式 第一种方式直接引入单个 Mapper 接口类。这种方式适用于小型项目或接口数量较少的情况。第二种方式引入整个包下的所有接口。这种方式更为灵活可以自动扫描指定包中的所有接口适用于较大项目。 mappers!-- 第一种方式class 引入单个接口 --mapper classcom.qcby.dao.UserAnnoDao/!-- 第二种方式引入整个包下的所有接口 --package namecom.qcby.dao/ /mappers2. UserDao 接口及注解 在 UserDao 接口中通过注解实现对数据库的增删改查操作。常用注解包括 Select用于查询操作。Insert用于插入数据。Update用于更新数据。Delete用于删除数据。Results 和 Result用于映射查询结果到 Java 对象属性。 import com.qcby.entity.User; import org.apache.ibatis.annotations.*;import java.util.List;public interface UserDao {// 查询所有用户Select(SELECT * FROM user)Results(id userMap, value {Result(property id, column id),Result(property username, column username),Result(property birthday, column birthday),Result(property sex, column sex),Result(property address, column address)})ListUser findAll();// 根据 ID 查询用户Select(SELECT * FROM user WHERE id #{id})ResultMap(userMap)User findById(int id);// 插入新用户Insert(INSERT INTO user(username, birthday, sex, address) VALUES(#{username}, #{birthday}, #{sex}, #{address}))SelectKey(statement SELECT last_insert_id(), keyProperty id, before false, resultType Integer.class)int insert(User user);// 更新用户Update(UPDATE user SET username #{username}, birthday #{birthday}, sex #{sex}, address #{address} WHERE id #{id})int update(User user);// 删除用户Delete(DELETE FROM user WHERE id #{id})int delete(int id);// 查询用户数量Select(SELECT COUNT(*) FROM user)int findCount();// 模糊查询Select(SELECT * FROM user WHERE username LIKE #{username})ListUser findByName(String username); }3. UserTest 测试方法 为了验证 UserDao 接口的正确性可以通过单元测试进行测试。在测试类 UserTest 中主要步骤包括 初始化 MyBatis 配置创建 SqlSession。通过 SqlSession 获取 UserDao 接口的代理对象。使用代理对象调用接口方法执行数据库操作。在测试方法执行前后分别进行资源的初始化和销毁。 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.After; import org.junit.Before; import org.junit.Test;import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.List;public class UserTest {private InputStream in;private SqlSession session;private UserDao mapper;Beforepublic void init() throws IOException {in Resources.getResourceAsStream(SqlMapConfig.xml);SqlSessionFactory factory new SqlSessionFactoryBuilder().build(in);session factory.openSession();mapper session.getMapper(UserDao.class);}Afterpublic void destroy() throws IOException {session.close();in.close();}Testpublic void findAll() {ListUser users mapper.findAll();users.forEach(System.out::println);}Testpublic void findById() {User user mapper.findById(4);System.out.println(user);}Testpublic void insert() {User user new User();user.setUsername(小美);user.setSex(女);user.setBirthday(new Date());user.setAddress(保定);mapper.insert(user);session.commit();}Testpublic void update() {User user new User();user.setId(22);user.setUsername(小美);user.setSex(女);user.setBirthday(new Date());user.setAddress(上海);mapper.update(user);session.commit();}Testpublic void delete() {mapper.delete(22);session.commit();}Testpublic void findCount() {int count mapper.findCount();System.out.println(count);}Testpublic void findByName() {ListUser users mapper.findByName(%a%);users.forEach(System.out::println);} }二、使用注解完成多对一查询 在多对一的关系中可以通过注解配置查询结果的映射关系直接将查询结果映射到关联的 Java 对象中。 1. 多对一立即加载 立即加载的方式在查询主表数据时会同时加载关联表的数据适合数据量较小的情况。 StudentDao 接口 Select(SELECT student.*, teacher.Tname FROM student LEFT JOIN teacher ON student.t_id teacher.id) Results(value {Result(property id, column id),Result(property Sname, column Sname),Result(property sex, column sex),Result(property age, column age),Result(property t_id, column t_id),Result(property teacher.Tname, column Tname) }) ListStudent getStudent();2. 多对一延迟加载 延迟加载的方式只有在需要访问关联数据时才会查询关联表的数据适合数据量较大的情况可以提高查询性能。 StudentDao 接口 Select(SELECT * FROM student) Results(value {Result(property id, column id),Result(property Sname, column Sname),Result(property sex, column sex),Result(property age, column age),Result(property teacher, column t_id, one One(select com.qcby.dao.TeacherDao.getTeacher, fetchType FetchType.LAZY)) }) ListStudent getStudent();TeacherDao 接口 Select(SELECT * FROM teacher WHERE id #{t_id}) Teacher getTeacher(Integer id);三、使用注解完成一对多查询 在一对多的关系中可以通过注解配置关联表的数据映射直接将关联的数据映射到集合属性中。 TeacherDao 接口 Select(SELECT * FROM Teacher) Results(value {Result(property id, column id),Result(property Tname, column Tname),Result(property students, column id, many Many(select com.qcby.dao.StudentDao.findByUid, fetchType FetchType.LAZY)) }) ListTeacher findAllLazy();StudentDao 接口 Select(SELECT * FROM student WHERE t_id #{t_id}) Student findByUid(int uid);总结 MyBatis 注解开发的方式通过将 SQL 语句直接嵌入到 Java 代码中省去了 XML 配置的繁琐步骤适合快速开发和简单项目。然而对于复杂项目建议使用 XML 配置的方式进行 SQL 语句的管理以提高代码的可维护性和可扩展性。
http://www.hkea.cn/news/14290901/

相关文章:

  • 茂名网站建设咨询公司网站代码模板下载
  • 做网站的去那里接单现在出入河南最新规定
  • wordpress博客站点地图开封seo公司
  • 网站界面设计要素在线域名ip查询
  • 网站设计的文案免费企业网站程序上传
  • 做的很好的网站网站开发会什么软件
  • 镇江企业网站公司企业邮箱注册
  • 湖北华亚建设工程有限公司网站设计公司资质怎么申请
  • 局域网建设网站重视机关网站建设
  • 高端品牌网站建设兴田德润可信赖建设网站制作公司
  • 网站制作成功后怎么使用福田公司董事长
  • 广东省省的建设厅官方网站合肥网站建设企业
  • 俄语网站叫什么yandex网站 中文版与英文版的后台有什么不同
  • 五金机械东莞网站建设做网站不难吧
  • 网站建设中存在的问题都有什么类别的网站
  • 内蒙古 网站建设权威网站
  • 跨境建站平台如皋网站制作
  • 自己制作一个网站网址域名解析
  • 简搜网站提交wordpress 安全插件
  • 古镇高端网站建设成都网站建设 木木科技
  • seo如何做网站建设九州建网站
  • seo整站优化推广尚德建设集团网站
  • 专业制作网站的公司制作自己的网站学校
  • 网站评论 设计wordpress自定义分类面包屑导航
  • 免费建站工具十堰网站建设联系电话
  • 哪个网站做员工增员wordpress站点地图无法读取
  • 大气的网站模板网站前端设计培训
  • 清理空壳网站做视频网站需要什么资质
  • 网站运营推广主要做什么的网站开发公司的职责
  • 网站优化检测工具网站模板建站教程