IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> mybatis框架总结 -> 正文阅读

[Java知识库]mybatis框架总结

知识点回顾

?? ?1、分页
?? ? ? 后台的分页参数
?? ? ??
?? ? ? ?cpage: 当前页
?? ? ? ?start:起始值 = (cpage - 1)* pageSize;
?? ??? ?pageSzie: 分页单位
?? ??? ?totalCount: 总条数 select count(*) from 表名
?? ??? ?totalPage: 总页数 ? = ?(totalCount / pageSize)+ (totalCount / pageSize == 0 ?0 :1)
?? ??? ?
?? ??? ?sql: limit start,pageSize;
?? ??? ?
?? ? ? 前台分页按钮
?? ? ? ? ?<a href="<%=basePath%>userServlet?m=list&cpage=1">首页</a>
?? ??? ? ?<a href="<%=basePath%>userServlet?m=list&cpage=${cpage == 1 ? cpage :(cpage-1)}">上页</a>
?? ??? ? ?<a href="<%=basePath%>userServlet?m=list&cpage=${cpage == totalPage ? cpage :(cpage+1)}">下页</a>
?? ??? ? ?<a href="<%=basePath%>userServlet?m=list&cpage=${totalPage}">尾页</a>
?? ??? ? ?
?? ?2、反射
?? ?
?? ? ? 创建Class对象的三种常见方式
?? ? ??
?? ? ? Class clazz1 = User.class;
?? ? ? Class clazz2 = Class.forName("com.tledu.pojo.User");
?? ? ? Class clazz3 = new User().getClass();
?? ? ? //通过反射创建User对象实例
?? ? ? User user = (User)clazz1.newInstance();
?? ? ??
?? ? ??
?? ? ? 反射创建对象比较消耗性能,看源码发现调用到了native关键字,而这个关键字会调用到底层 c语言
?? ? ? 每次在创建对象的时候都会进行安全校验 CheckAccessMember()
?? ? ??
?? ? ??
?? ? ? 获取基本的信息
?? ? ??
?? ? ? clazz1.getPackage(); //包名
?? ? ? clazz1.getModifiers(); //访问修饰符
?? ? ? clazz1.getSimpleName(); //获取类名
?? ? ? clazz1.getName(); //获取的全类名
?? ? ? clazz1.getInterface(); //获取接口
?? ? ? clazz1.getAnnotation();//获取注解
?? ? ??
?? ? ? 1、属性
?? ? ? ? ?//获取本类及父类公共的属性
?? ??? ? ? Field[] fields = clazz1.getFields();
?? ??? ? ? for(Field field:fields){
?? ??? ??? ? ? //获取属性名
?? ??? ??? ? ? field.getName()
?? ??? ??? ? ? //获取修饰符
?? ??? ??? ? ? Modifier.toString(field.getModifiers());
?? ??? ? ? }
?? ??? ? ? //获取本类中所有的属性包括私有
?? ??? ? ? Field[] fields = clazz1.getDeclaredFields();
?? ??? ? ? for(Field field:fields){
?? ??? ??? ? ? //获取属性名
?? ??? ??? ? ? field.getName()
?? ??? ??? ? ? //获取修饰符
?? ??? ??? ? ? Modifier.toString(field.getModifiers());
?? ??? ? ? }
?? ??? ? ??
?? ??? ? ?普通属性的操作
?? ??? ? ?Field field = clazz1.getDeclaredField("name");
?? ??? ? ?//访问私有要先开权限
?? ??? ? ?field.setAccessible(true);
?? ??? ? ?field.set(user,"Tom"); //给User对象中的name属性赋值
?? ??? ? ?field.get(user); //获取User对象中name属性值
?? ??? ? ?
?? ??? ? ?静态属性的操作
?? ??? ? ?Field field = clazz1.getDeclaredField("name");
?? ??? ? ?//访问私有要先开权限
?? ??? ? ?field.setAccessible(true);
?? ??? ? ?field.set(null,"Tom"); //给User对象中的name属性赋值
?? ??? ? ?field.get(null); //获取User对象中name属性值
?? ??? ? ??
?? ? ? 2、方法
?? ? ? ? ?//获取本类及父类中的公共的方法
?? ??? ? ?Method[] methods = clazz1.getMethods();
?? ? ? ? ?//获取本类的所有方法
?? ??? ? ?Method[] methods = clazz1.getDeclaredMethods();
?? ??? ? ?
?? ??? ? ?//getDeclaredMethod(arg,rag...)
?? ??? ? ?//第一个参数是方法名,第二个参数是可变参数是Class类型的
?? ??? ? ?Method method = clazz1.getDeclaredMethod("eat");?
?? ? ? ? ?method.invok(user);
?? ??? ? ?//静态方法时的调用
?? ??? ? ?Method method = clazz1.getDeclaredMethod("say",String.class);?
?? ? ? ? ?method.invok(null,"英语");
?? ? ??
?? ? ? 3、构造
?? ? ? ? ?Constructor<?>[] constructors = clazz1.getDeclaredConstructors();
?? ? ? ? ?Constructor<User> constructor = clazz.getDeclaredConstructor(String.class,String.class);
?? ??? ? ?User user2 = constructor.newInstance("田源","男");
?? ??? ? ?System.out.println(user2.getName()+" "+user2.getSex());
?? ??? ? ?
?? ? ? 4、单例破局
?? ? ? ?

?public class Singlton{
?? ??? ??? ? ?
?? ??? ??? ? ?private Singlton singlton = null;
?? ??? ??? ? ?
?? ??? ??? ? ?private Singlton(){
?? ??? ??? ??? ? ?if(singlton != null){
?? ??? ??? ??? ??? ? ?throw new RuntimeException();
?? ??? ??? ??? ? ?}
?? ??? ??? ? ?}
?? ??? ??? ? ?
?? ??? ??? ? ?public static Singlton getInstance(){
?? ??? ??? ??? ? ?if(singlton == null){
?? ??? ??? ??? ??? ? ?singlton = new Singlton();
?? ??? ??? ??? ? ?}
?? ??? ??? ??? ? ?return singlton;
?? ??? ??? ? ?}
?? ??? ??? ? ?
?? ??? ??? ? ?
?? ??? ? ?}


?? ??? ? ?
?? ??? ?5、对象克隆
?? ??? ?
?? ??? ? ?思路:通过反射获取有值的对象中的get方法并调用,
?? ??? ? ? ? ? ?这样去出值后再调用没有值对象的set方法传入获取的值并执行
?? ??? ??? ?
?? ??? ?

?public static void copyProperties(Object obj1,Object obj2){
?? ??? ??? ? ?
?? ??? ??? ? ?Class clazz1 = obj1.getClass();
?? ??? ??? ? ?Class clazz2 = obj2.getClass();
?? ??? ??? ? ?
?? ??? ??? ? ?Method[] method1 = clazz1.getDeclaredMethods();
?? ??? ??? ? ?for(Method method:method1){
?? ??? ??? ??? ? ?String m1 = method.getName();
?? ??? ??? ??? ? ?if(m1.startWith("g")){
?? ??? ??? ??? ??? ? ?String value1 = (String)method.invok(obj1);
?? ??? ??? ??? ??? ? ?
?? ??? ??? ??? ??? ? ?Method[] method2 = clazz2.getDeclaredMethods();
?? ??? ??? ??? ??? ? ?for(Method method22:method2){
?? ??? ??? ??? ??? ??? ? ?String m2 = method22.getName();
?? ??? ??? ??? ??? ??? ? ?if(m2.startWith("s")&&m2.subString(1).equals(m1.subString(1))){
?? ??? ??? ??? ??? ??? ??? ? ?method22.invok(obj2,value1);
?? ??? ??? ??? ??? ??? ? ?}
?? ??? ??? ??? ??? ? ?}
?? ??? ??? ??? ??? ? ?
?? ??? ??? ??? ? ?}
?? ??? ??? ? ?}
?? ??? ??? ? ?
?? ??? ? ?}?? ?

Mybatis入门
第一步:
创建t_user表
第二步:
创建lib文件夹导入相应jar文件
①log4j ②mysql ③mybatis
第三步:
创建User实体类
第四步:
导入 log4j.properties 、jdbc.propertie文件
第五步:
创建mybatis-config.xml
?? ?第六步:
创建UserMapper.xml

?? ?
?? ? 第七步:
创建MybatisTest 测试类??
?? ? ??
?? ? ??

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 08:53:50  更:2021-08-28 08:55:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:59:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码