MyBatis的原始DAO开发!!!

引用:MyBatis的删除、修改、插入操作!!!-CSDN博客的准备工作!!!(准备工作都一样只不过文件名称有所不同)

1.利用原始DAO开发,查询所有的信息。

UserDao:

package com.by.dao;import com.by.pojo.User;import java.util.List;public interface UserDao {List<User> findAll();}

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.by.dao.UserDao"><select id="findAll" resultType="com.by.pojo.User">select  * from user</select>
</mapper>

与Mapper开发有所不同的是,原始Dao开发需要有接口的实现类:

UserDaoImpl: 接口的实现类的写法你需要注意调用的方法以及传递的参数。(参数为全类名+方法名

/** Copyright (c) 2020, 2023,  All rights reserved.**/
package com.by.dao;import com.by.pojo.User;
import org.apache.ibatis.session.SqlSession;import java.util.List;public class UserDaoImpl implements UserDao{private SqlSession sqlSession;public UserDaoImpl(SqlSession sqlSession) {this.sqlSession = sqlSession;}@Overridepublic List<User> findAll() {return sqlSession.selectList("com.by.dao.UserDao.findAll");}}

测试类:

/** Copyright (c) 2020, 2023,  All rights reserved.**/
package com.by;import com.by.dao.UserDao;
import com.by.dao.UserDaoImpl;
import com.by.pojo.User;
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.Test;import java.io.IOException;
import java.io.InputStream;
import java.util.List;/*** <p>Project: mybatis - MyBatisTest</p>* <p>Powered by scl On 2023-12-18 11:44:53</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
public class MyBatisTest {@Testpublic void testFindAll() throws IOException {// 加载配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 创建sqlSessionFActorySqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获得数据的绘画实例SqlSession sqlSession = sessionFactory.openSession();UserDao userDao = new UserDaoImpl(sqlSession);List<User> userList = userDao.findAll();for (User str : userList) {System.out.println(str);}inputStream.close();sqlSession.close();}}

2.根据id查询信息

UserDao:

package com.by.dao;import com.by.pojo.User;
import java.util.List;public interface UserDao {User getUserById(Integer id);
}

UserDao.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.by.dao.UserDao"><select id="getUserById" resultType="com.by.pojo.User">select *from user where id=#{id};</select>
</mapper>

UserDaoImpl: 接口的实现类的写法你需要注意调用的方法以及传递的参数。(参数为全类名+方法名

/** Copyright (c) 2020, 2023,  All rights reserved.**/
package com.by.dao;import com.by.pojo.User;
import org.apache.ibatis.session.SqlSession;
import java.util.List;public class UserDaoImpl implements UserDao{private SqlSession sqlSession;public UserDaoImpl(SqlSession sqlSession) {this.sqlSession = sqlSession;}@Overridepublic User getUserById(Integer id) {return sqlSession.selectOne("com.by.dao.UserDao.getUserById",id);}
}

测试类:

/** Copyright (c) 2020, 2023,  All rights reserved.**/
package com.by;import com.by.dao.UserDao;
import com.by.dao.UserDaoImpl;
import com.by.pojo.User;
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.Test;import java.io.IOException;
import java.io.InputStream;
import java.util.List;public class MyBatisTest {@Testpublic void getUserById() throws IOException {// 加载配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 创建sqlSessionFActorySqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获得数据的绘画实例SqlSession sqlSession = sessionFactory.openSession();UserDao userDao = new UserDaoImpl(sqlSession);User user = userDao.getUserById(42);System.out.println(user);inputStream.close();sqlSession.close();}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/234115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Rsync 在 Linux 上实现高效文件同步和备份

前言 Rsync&#xff08;Remote Sync&#xff09;是一款在 Linux 系统中被广泛应用于文件备份和同步的工具&#xff0c;它提供了快速、可靠且灵活的文件同步方案。 Rsync 的优势 增量传输&#xff1a;Rsync 只传输文件的变更部分&#xff0c;大幅减少了数据传输的时间和网络带…

【数据库模拟题目集】选择题

数据库应用程序的编写是基于数据库三级模式中的&#xff08;外模式&#xff09; 对创建数据库模式一类的数据库对象的授权可由CREATE USER时实现。新创建的数据库用户有三种权限&#xff0c;CONNECT、RESOURCE和DBA。拥有RESOURCE权限的用户&#xff08;不能创建模式 &#xf…

H5嵌入小程序(web-view)、BMap百度地图组件、导航功能、返回web-view页

H5嵌入小程序&#xff08;web-view&#xff09;及导航功实现 1、H5页面中的地图展示2、H5传递数据到微信小程序&#xff0c;并调用wx.openLocation微信内置地图及导航功能的实现 1、H5页面中的地图展示 创建地图容器&#xff0c;添加导航按钮 <template><div><…

关于通信基站综合防雷方案介绍

为了获取更好的通信效果&#xff0c;通信基站在选址时通常地势要高于周围环境&#xff0c;气候条件恶劣&#xff0c;夏季通讯及机房设备及发射铁塔遭受雷击灾害的风险较高&#xff0c;而现代的电信设备对雷电又较为敏感&#xff0c;使得雷害问题日益凸显出来&#xff0c;如果防…

裂解汽油行业分析:到2027 年将达到 202.4 亿美元

裂解汽油&#xff0c;又称pygas&#xff0c;是石化工业中用石脑油或瓦斯油生产乙烯和丙烯的副产品。热解气是一种复杂的碳氢化合物混合物&#xff0c;主要由苯、甲苯和二甲苯等芳烃组成。热解汽油是生产苯乙烯、苯酚和合成橡胶等化学品的宝贵原料。 全球市场&#xff1a; 预计在…

延迟消息队列的几种实现方案,哪种更适合业务,要看具体情况分析

延迟消息队列的几种实现方案&#xff0c;延迟消息怎么实现&#xff0c;很多人可能一想到的是rabbitmq的死信队列来实现&#xff0c;但是一旦引入mq的话&#xff0c;就依赖这个中间件&#xff0c;另外维护成本&#xff0c;开发成本都很大&#xff0c;那有么有简单点的实现方式呢…

Linux安全之SELinux理解

安全增强式 Linux&#xff0c;即SELinux(Security-Enhanced Linux)是一个 Linux 内核的安全模块&#xff0c;其提供了访问控制安全策略机制&#xff0c;包括了强制访问控制(Mandatory Access Control&#xff0c;MAC)。SELinux 是一组内核修改和用户空间工具&#xff0c;已经被…

9ACL访问控制列表

为什么要有访问控制&#xff08;Access Control List&#xff09;&#xff1f; 因为我可能在局域网中提供了一些服务&#xff0c;我只希望合法的用户可以访问&#xff0c;其他非授权用户不能访问。 原理比较简单&#xff0c;通过对数据包里的信息做过滤&#xff0c;实现访问控…

houdini 神经网络

实现个神经网络的3D可视化&#xff0c;美爆了&#xff01;-腾讯云开发者社区-腾讯云 https://vimeo.com/stefsietz GitHub - julrog/nn_vis: A project for processing neural networks and rendering to gain insights on the architecture and parameters of a model throu…

unity2d 关闭全局重力

UNITY2D项目默认存在Y轴方向重力&#xff0c;创建俯视角2D场景时可通过以下配置关闭 Edit > Project Settings > Physics 2D > General Settings > Gravity 设置Y0

vue打包后直接本地访问index.html

以下方法可能有些项目并不生效 在vue.config.js 文件&#xff0c;没有的话就新建一个&#xff0c;并添加publicPath: ./ ’ module.exports {publicPath: ./ }router.js 把mode改成hash模式 const router new Router({mode: "hash",routes }); export default rout…

Elasticsearch——索引数据

索引可以说是Elasticsearch中非常重要的模块&#xff0c;一个索引可以视作关系数据库中的一张表&#xff0c;本帖将详细介绍与Elasticsearch索引相关的各种功能等。主要内容如下&#xff1a; 索引映射(mapping)结构的定义方法&#xff0c;常用的各种字段类型和动态映射的使用。…

细说 MySQL 用户安全加固策略

这是一篇关于如何加强 MySQL 用户安全的文章&#xff0c;通读全文您可以了解密码复杂度策略、连接控制插件以及密码变更策略的相关知识。本文内容仅供参考&#xff0c;请在操作时以实际环境为准&#xff0c;避免造成经济损失。 作者&#xff1a;余振兴&#xff0c;爱可生 DBA 团…

Linux系统LVS+Keepalived群集

目录 一、概述 &#xff08;一&#xff09;群集特性 1.负载均衡 2.健康检查&#xff08;探针&#xff09; 3.故障转移 &#xff08;二&#xff09;Keepalived 1.作用 &#xff08;1&#xff09;支持故障自动转移 &#xff08;2&#xff09;支持节点健康状态检…

Wireshark与其他工具的整合

第一章&#xff1a;Wireshark基础及捕获技巧 1.1 Wireshark基础知识回顾 1.2 高级捕获技巧&#xff1a;过滤器和捕获选项 1.3 Wireshark与其他抓包工具的比较 第二章&#xff1a;网络协议分析 2.1 网络协议分析&#xff1a;TCP、UDP、ICMP等 2.2 高级协议分析&#xff1a;HTTP…

使用k8s部署Mysql实例~hostpath,nfs服务器,PV和PVC持久化

1.k8s数据存储的分类&#xff1a; 1.基础存储的分类&#xff1a; 分类说明EmptyDirEmptyDir是在Pod被分配到Node时创建的&#xff0c;无须手动指定&#xff0c;当Pod销毁时&#xff0c; EmptyDir中的数据也会被永久删除HostPathHostPath就是将Node主机中一个实际目录挂载到Po…

Spring Boot重试调用第三方API

简介 在实际的应用开发中&#xff0c;我们经常需要调用第三方API来获取数据或执行操作。然而&#xff0c;由于网络波动、第三方服务不稳定等原因&#xff0c;API调用可能会面临失败的情况。为了提高应用的可靠性和稳定性&#xff0c;我们需要在调用第三方API时实现优雅的重试机…

【HTML】解析垂直滚动轮播效果的HTML、CSS和JavaScript实现

解析垂直滚动轮播效果的HTML、CSS和JavaScript实现 在现代Web开发中&#xff0c;滚动轮播效果是网页设计中常见的交互元素之一。在本文中&#xff0c;我们将深入解析一段HTML、CSS和JavaScript的代码&#xff0c;实现了一个简单而高效的垂直滚动轮播效果。通过该代码&#xff…

云仓酒庄的品牌雷盛红酒分享红酒的颜色越深代表越好吗?

红酒颜色从宝石红、石榴红到紫红甚至砖红&#xff0c;颜色各异色彩纷呈。有朋友问云仓酒庄品酒师&#xff0c;是不是红酒的颜色越深代表酒越好&#xff1f; 颜色较深的葡萄酒&#xff0c;一般酒体比较厚重&#xff0c;风格比较强劲&#xff0c;单宁含量也较高&#xff0c;是好…

NFS权限问题

如果您想允许特定的用户&#xff08;例如 qrcode 用户&#xff0c;其 UID 为 1014&#xff09;在 NFS 共享上具有访问权限&#xff0c;同时仍然保留其他用户的默认映射行为&#xff0c;您可以按照以下步骤进行配置&#xff1a; 为了允许 qrcode 用户访问共享目录&#xff0c;您…