- 博客(58)
- 收藏
- 关注
原创 11学习mybatis之动态SQL
动态SQL:动态SQL就是根据不同条件写不同的SQL语句动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OG
2021-01-27 21:27:30
103
原创 10学习mybatis之一对多处理
按照结果嵌套处理<!--按结果嵌套处理--> <select id="getTeacher" resultMap="TeacherStudent"> select s.id sid,s.name sname,t.name tname,t.id tid from student s, teacher t where s.tid=t.id and t.id=#{tid}; </select> <resultM
2021-01-26 11:46:55
97
原创 09学习mybatis之多对一处理
测试环境搭建导入Lombok包建立实体类 Teacher Student建立Mapper接口建立Mapper.xml在核心配置文件中绑定注册我们的Mapper接口或者文件查询是否能够成功
2021-01-25 17:08:12
138
2
原创 08学习mybatis之Lombok
LombokProject Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging v
2021-01-22 22:14:25
123
原创 07学习mybatis之使用注解开发
使用注解开发1.注解在接口上实现package com.li.dao;import com.li.pojo.User;import org.apache.ibatis.annotations.Select;import java.util.List;import java.util.Map;public interface UserMapper { //查询全部用户 @Select("select * from user") List<User> g
2021-01-22 21:23:01
49
原创 07学习mybatis之分页
思考:为什么要分页?减少数据的处理量使用limit分页//语法 select * from user limit 开始索引,每页参数的数量;select * from user limit 2,2;//只有一个参数则从0开始,数量为2select * from user limit 2;
2021-01-21 21:13:20
61
原创 06学习mybatis之日志
1、日志工厂如果一个数据库操作,出现了异常,我们需要排错。日志就是最好的助手!曾经:sout、debug现在:日志工厂!SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING【掌握】NO_LOGGING在mybatis中具体使用哪个日志实现,在设置中设定!STDOUT_LOGGING 标准日志输出标准的日志工厂实现<!-- STDOUT_LOGGING Implementation of st
2021-01-21 19:58:55
169
原创 05学习mybatis之解决属性名和字段名不一致的问题
数据库中的字段新建一个项目,拷贝之前的,测试实体类字段名不一样的情况//实体类public class User { private int id; private String name; private String password;原因:select * from mybatis.user where id= #{id} ==> select id,name,pwd from mybatis.user where id= #{id}解决方法
2021-01-21 15:16:37
73
原创 04学习mybatis之配置解析
1、核心配置文件mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataS
2021-01-21 13:21:19
50
原创 03学习mybatis之增删改查
1、namespacenamespace中的包名要和Dao/Mapper接口的包名一致!2、select选择/查询 语句id:对应namespace中的方法名,不是包名resultType: Sql执行语句的返回值parameterType: 参数类型1.编写接口//根据id查询用户 User getUserById(int id);2.编写对应的mapper中的sql语句 <select id="getUserById" resultType="com.li.poj
2021-01-20 19:47:57
66
原创 02学习mybatis之第一个mybatis程序
1、搭建环境1.新建一个maven项目2.删除src3.导入maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/
2021-01-20 13:02:48
56
原创 01学习Mybatis之什么是Mybatis?
简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old JavaObjects,普通老式 Java 对象)为数据库中的记录。MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了g
2021-01-19 16:33:31
59
原创 学习html5基础--10.学习表单(重点)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>登录注册</title></head><body><h1>注册</h1><!-- 表单fromaction:表单提交的位置,可以是网站,也可以是一个请求处理网站method: post,get 提交方式ge
2020-11-26 20:37:02
108
原创 学习html5基础--9.iframe内联框架
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>iframe内联框架</title></head><body><iframe src="https://www.baidu.com" frameborder="0" height="500" width="800"></iframe&
2020-11-26 20:35:55
199
原创 学习html5基础--8.页面结构
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>页面结构分析</title></head><body><header><h2>网页头部</h2></header><section><h2>网页主体</h2>&
2020-11-26 20:34:47
77
原创 学习html5基础--7.媒体元素
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学习媒体元素</title></head><body><!-- 视频和音频src :资源路径controls : 播放开关与控制条autoplay : 自动播放--><video src="../resources/video
2020-11-26 20:34:13
115
原创 学习html5基础--6.表格标签
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学习表格标签</title></head><body><!-- 学习表格标签行:tr列:tdborder:表格线 :空格符号--><table border="1px"> <tr&
2020-11-26 10:00:31
124
原创 学习html5基础--5.列表标签
学习列表 刘备 张飞 关羽 卧龙 凤雏 郭靖 无忌 杨过 小宝 小凡 名将 <dd>张飞</dd> <dd>关羽</dd> <dd>卧龙</dd> <dd>凤雏</dd> <dt>武侠</dt> ...
2020-11-25 23:20:29
75
原创 学习html5基础--4.链接标签
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学习连接标签</title></head><body><!-- 锚链接回到顶部的标记--><a name="top"></a><!--href : href后面跟的是网页地址target : 表示网页的打
2020-11-25 23:02:49
74
原创 学习html5基础--3.图像标签
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学习图像标签</title></head><body><!-- img图像标签src : 可以用相对路径和绝对路径,默认用相对路径alt : 图片名字--><img src="../resources/image/1.jpg"
2020-11-25 21:37:06
81
原创 学习html5基础--2.网页基本标签
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/html"><head> <meta charset="UTF-8"> <title>学习基本标签</title></head><br><!-- 标题标签--><h1>一级标签</h1><h2>二级标签<
2020-11-25 21:14:03
114
原创 学习html5基础--1.我的第一个网页!
<!-- DOCTYPE作用:告诉浏览器,用的是html规范。默认用的是html --><!DOCTYPE html><html lang="en"><!-- head:代表网页头部 --><head> <!-- meta描述性标签,它用来描述我们网站的一些信息--> <meta charset="UTF-8"> <meta name="keywords" conte
2020-11-25 21:09:18
330
原创 利用反射机制调用方法
{ public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { //这是以前的方法,没有使用反射机制 UserService userService=new UserService();
2020-11-21 16:39:54
112
原创 反射中获取类路径下的绝对路径
全部都需要是同一个类里面通用方法public class abc { public static void main(String[] args){ String path=Thread.currentThread().getContextClassLoader().getResource("classinfo2.properties").getPath(); System.out.println(path); }}资源绑定器public clas
2020-11-21 03:12:02
516
原创 反射中获得Class的三种方式
{ public static void main(String[] args) throws ClassNotFoundException { //第一种 Class c1=null; Class c2=null; c1=Class.forName("java.lang.String"); c2=Class.forName("java.util.Date");//第二种 String s="ab"; Class c
2020-11-20 15:41:55
65
原创 多线程生产者和消费者代码
import java.io.*;import java.text.SimpleDateFormat;import java.util.*;import java.lang.Object;public class jaChu { public static void main(String[] args) { //创建一个集合 List list=new ArrayList(); //创建生产者线程和消费者线程 Thread
2020-11-20 13:16:44
114
原创 Files的常用方法都有哪些?
Files.exists():检测文件路径是否存在。Files.createFile():创建文件。Files.createDirectory():创建文件夹。Files.delete():删除一个文件或目录。Files.copy():复制文件。Files.move():移动文件。Files.size():查看文件个数。Files.read():读取文件。Files.write():写入文件。...
2020-11-18 10:04:49
140
原创 FileInputStream输出字节的方法
FileOutputStream i=null; //创建一个输出流,如果要使用追加方法,则在地址位置后面加上true,不然的话会先清空原来内容,再进行输出 //没有文件名的话,则会自动创建。 i=new FileOutputStream("out/work1",true); //创建一个数组,加入三个元素 byte[] b={105,106,107}; //输出三个元素 i.write(b);.
2020-11-17 21:25:38
124
原创 FileInputStream读取文件的方法
FileInputStream i=null;try {//读取文件i=new FileInputStream(“out/work1”);} catch (FileNotFoundException e) {e.printStackTrace();}finally {//需要关闭,不关闭浪费资源i.close();}//创建一个数组长度为4的数组byte[] b=new byte[4];//i.read(b)计算读取了多少个元素,如果最后没有元素了,则返回-1int c=0;wh
2020-11-17 20:58:02
1270
原创 Properties基本方法
//创建集合,加入key和valueProperties p=new Properties();p.setProperty(“1”,“zs”);p.setProperty(“2”,“ls”);p.setProperty(“3”,“w5”);//通过key得到valueString p1=p.getProperty(“1”);String p2=p.getProperty(“2”);String p3=p.getProperty(“3”);//输出key和valueSystem.out.p
2020-11-17 11:28:29
105
原创 TreeSet基本方法
import java.util.*;public class jaChu { public static void main(String[] args) { //创建集合 TreeSet<Integer> ts=new TreeSet<>(); ts.add(100); ts.add(200); ts.add(600); ts.add(300); for
2020-11-17 11:06:23
243
原创 HashSet 的实现原理
HashSet底层由HashMap实现HashSet的值存放于HashMap的key上HashMap的value统一为PRESENT
2020-11-17 10:21:45
88
原创 HashMap 和 Hashtable 有什么区别?
HashMap 和 Hashtable 有什么区别?hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。hashTable同步的,而HashMap是非同步的,效率上HashMa更高。hashMap允许空键值,而hashTable不允许。...
2020-11-17 10:20:14
59
原创 HashMap的实现原理
HashMap允许key值和value值为null;HashMap是数组和链表的结合体,比如杜老师说的门帘;HashMap的put方法:先将key值转换成hash值,hash值是这个元素在数组中的位置(下标),如果数组的这个位置上没有元素,则将这个元素放在这个位置上;如果数组的这个位置上有元素,先用key值和这个数组上链表的key值进行equals比较,如果有相同的话,则将进行覆盖,如果没有相同的话,就连接在这条链表的末尾。...
2020-11-17 10:18:33
55
原创 HashSet集合的基本方法
//创建集合 HashSet<String> s =new HashSet<>(); //添加元素 s.add("abc"); s.add("cba"); s.add("aaa"); //无序不可重复 s.add("aaa"); s.add("aaa"); s.add("bbb"); s.add("ccc");//遍历集合 I
2020-11-17 09:57:10
371
原创 集合List这块需要掌握的内容
public static void main(String[] args) { //创建集合 List<Integer> mylist = new ArrayList<>(); //ArrayList和LinkedList的方法是一样的。 //添加元素 mylist.add(1); mylist.add(2); mylist.add(3); mylist.add(4);
2020-11-17 09:29:45
74
原创 遍历map集合的两种方法
通过获取key集合,再获得valuepublic static void main(String[] args) { Map<Integer,String>map = new HashMap<>(); map.put(1,"张三"); map.put(2,"李四"); map.put(3,"王五"); map.put(4,"赵六");//获取所有key,是一个set集合 Set<
2020-11-15 20:57:49
83
原创 List接口中的常用方法
List是Collection接口的子接口。所以List接口中有一些特有的方法。void add(int index, Object element) //往指定下标位置添加元素Object set(int index, Object element) //往指定下标位置修改元素Object get(int index) //往指定下标位置查看元素int indexOf(Object o) //获取第一次出现指定对象的下标int lastIndexOf(Object o)//
2020-11-14 21:37:00
118
原创 collection的几种常用方法
boolean add(object e) //向集合中添加元素。int size() //获取集合中的个数。void clear() //清空集合。boolean contains(object o)//判断当前集合中是否包含元素o,包含返回true,不包含返回false。boolean remove(object o )//删除集合中的某个元素。boolean isEmpty()//判断该集合的元素个数是否为零。...
2020-11-14 11:39:14
488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人