阶段3 1.Mybatis_02.Mybatis入门案例_3.mybatis注解开发和编写dao实现类的方式

注解的用法
直接创建一个新的项目


下一步直接next 然后finish即可
把之前项目01里面的代码直接复制过来

复制到我们02的注解的工程中

把01项目导入的依赖也都粘贴过来

再把测试类复制过去

复制到02的项目,test/java下


用注解的话,这个xml就没有任何意义了

主配置文件的内容不动

resources下的com文件夹直接删除

删除后的resources目录

在dao类里面加上注解

之前我们这里是这么配置的。里面是xml的配置。现在我们不用xml的配置 ,改用注解了。

改成class的配置

再来运行我们的测试类

运行结果,和刚才用xml配置的结果是一样的。这样配置比xml的方式更简单了一步

用注解步骤简单

注解总结

dao实现类
实际的开发过程中,越简单越好,所以不写dao的实现类

自己写dao实现类。我们重新创建一个工程


把第一个工程的文件复制过来


配置文件也复制过来

新建实现类UserDaoImpl放在Impl包下

继承IUserDao的接口

添加这么个方法

有了实现类就需要提供方法来实现功能、。
原来的代码后面代理对象这里就没有了。我们是自己写实现类的

session里面有selectList查询的方法

我们应该在session里面去调用,但是发现里面没有session这个对象。

那就需要定义能拿到session对象的。SqlSessionFactory对象,构造函数传入进来赋值。

这里selectList方法报错。

selectList是需要有个参数的

进去到源码里面看到,参数是一个stateMent

statement实际上就是我们的配置信息。我们需要从配置文件里面,拿到sql语句

namespace+方法名,就是statement这个参数,

传入工厂对象

执行结果

写dao实现类,可以实现功能,但是意义不大。我们不写也能实现功能。
光靠id无法定位到sql语句,还需要namespace

阶段3 1.Mybatis_02.Mybatis入门案例_3.mybatis注解开发和编写dao实现类的方式的更多相关文章
- mybatis学习:mybatis的注解开发和编写dao实现类的方式入门
一.使用注解则不需要创建映射配置文件:即xxxDao.xml javaBean为什么要实现Serializable接口? Java的"对象序列化"能让你将一个实现了Serializ ...
- 阶段3 1.Mybatis_02.Mybatis入门案例_1.mybatis的入门
H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\讲义+笔记+资料\主流框架\31.会员版(2.0)-就业课(2.0)-Mybatis\mybatis\mybatis_d ...
- 阶段3 1.Mybatis_02.Mybatis入门案例_2.mybatis入门案例中的设计模式分析
读取配合文件 创建工厂 最终图
- MyBatis入门案例、增删改查
一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...
- MyBatis入门案例 增删改查
一.MyBatis入门案例: ①:引入jar包 ②:创建实体类 Dept,并进行封装 ③ 在Src下创建大配置mybatis-config.xml <?xml version="1.0 ...
- Mybatis入门案例中设计模式的简单分析
Talk is cheap, show me the code! public class TestMybatis { public static void main(String[] args) t ...
- mybatis入门案例自定义实现
mybatis入门案例自定义实现 一.需要实现的类和接口 public static void main(String[] args) throws Exception{ //1.读取配置文件 Inp ...
- mybatis入门案例分析
mybatis入门案例分析 一.设计模式分析 public class MybatisTest { public static void main(String[] args) throws Exce ...
- 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...
随机推荐
- phpstudy使用PHP+nginx配置Laravel
一.需要注意把vhosts.conf文件内root项目路径的\换成/例如 root "D:/laravelApp/test/public"; 二.若文件根目录下没有 .env1.. ...
- mongoose 开源http库
Mongoose是一个用C编写的网络库.它为客户端和服务器模式实现TCP,UDP,HTTP,WebSocket,CoAP,MQTT的事件驱动的非阻塞API. 设计理念: Mongoose有三个基本的数 ...
- 一、Linux平台部署ASP.NET、ASP.NET CORE、PHP
一.什么是Jexus Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关服务器,以支持ASP.NET.ASP.NET CORE.PHP为特色,同时具备反向代理.入侵检测等重要功能.可以 ...
- LCA统计
读入挂 inline void read(int &v) { v = ; ; ; ') { if (c == '-') { p = -; } c = getchar(); } ') { v = ...
- SQL小操作
用string.Format格式化参数 string sqlCmd = string.Format("select NO from [dbo].[SendAcerData] where BA ...
- 流式布局和viewport
流式布局 百分比布局,非固定宽度,内容向两边填充,流动的布局. viewport(视口) PC端的网页在手机端的浏览器显示是不会出现网页的,这是因为移动端的网页不是直接放在移动端的浏览器中,而是放在移 ...
- container_of机制
#include <stdio.h> #include <stdlib.h> /* 计算成员变量首部相对于结构变量首部的偏移量 */ #define offsetof(TYPE ...
- HDU-3081-Marriage Match 2(最大流, 二分答案, 并查集)
链接: https://vjudge.net/problem/HDU-3081 题意: Presumably, you all have known the question of stable ma ...
- swiper保存
//初始化swiper var index=0; if(sessionStorage.getItem("index")){ index=sessionStorage.getItem ...
- Python 变量类型Ⅲ
Python 元组 元组是另一个数据类型,类似于 List(列表). 元组用 () 标识.内部元素用逗号隔开.但是元组不能二次赋值,相当于只读列表. 以上实例输出结果: 以下是元组无效的,因为元组是不 ...