3.java的hello word.继承.泛型.反射.配置项.数据库操作.lombok
迷迷茫茫的开始了第一步.弄个hello word.结果这第一小步也不是那么的顺利.
明明照着图敲的.可就是没有运行选项.

为此还百度了一下.也没有什么答案.最后只能老老实实的看了.结果还是粗心的问题.Main里面必须要写参数.写了才会出运行.
控制台版的hello word搞定.
接下来开始web版的.
结果也不是那么顺利.页面没有出来.我这个人有个好处就是会从多方面思考.寻找原因
第一步想是不是tomcat没有启动.于是手动找到文件夹.start.没有启动成功.百度之.需要配置一下环境变量.然后好了.
但还是调试页面不出.既然tomcat没问题.想必就是程序代码或者配置有问题.
代码问题想必是不会了.我就用的默认的页面.什么都没有改动.应该是配置了.想了想

在网上是看的这位仁兄的教程.其中有一步就是这个.里面也没说为啥这么做.反正我就照着来了.
结果就是没出页面.想起后.又勾上就好了.
开始尝试移植dbhelper.
第一个问题就是配置文件.net有web.config.java我还专门百度了一下.就是一个后缀为properties的文本文件.....
里面写上key=value
顿时感觉弱爆了.不喜欢这种方式.
于是直接把.net的web.config复制过去.自己做xml解析
.net数据库连接字符串就一句话.java3句.连接地址.用户名.密码.
后面数据库操作里有中文.导致出错.配置的后面需要加一句?useUnicode=true&characterEncoding=UTF-8
连接搞定后.就要开始移植了.增删改没啥说的.其实也没到哪里.
先开始查.比较郁闷的java没有DataTable.
不过DataTable有没有无所谓.关键是想要List<Model>
就这么一个要求.百度了半天才找到.通过反射对对象进行赋值.添加到list里面.不过我找的这个没有用list用的Vector.不用纠结太多.反正和list也差不多
对了.这里面涉及到了java的泛型。和.net的有点不一样。比较懵逼的是Class<T>这个参数要怎么传。方法有了。参数不会传递。这种问题没少遇见。
之前.net写视图的时候。里面要一个controller的参数。我就不会传值。后来想了半天.控制器里面的this不就是嘛.直接传this就可以了.再后来涉及到多线程.this不好使.
直接new controller了.
java这个我有百度了.可怜我的小白问题.没有找到答案.只能瞎摸索了.还好也不难.类.class就出来了

于是乎顺利进行.
这里插一句.大概看了一下java里面流行的orm框架.Hibernate和mybatis.2个都需要配置.mybatis配置更多.我看的入门demo是一个类要配置一个配置文件.相应的sql语句.Hibernate要配置映射.
没有深入学习不知道.能不能配置直接反射用字段名就好了.这一个类一个配置实在是太麻烦了.
调用这个方法.如果有类型.class还是比较好传递的.但是是泛型的话.要怎么传呢?又把我难住了.
还好这次百度到了答案.
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
Class type=(Class) params[0];
放到泛型方法里面就好了.你就可以拿到class了
接着要开始拼接sql了.首先要根据类型获取到类名.这里可是卡了半天.
一开始我的参数里面用的类型是Type.
参数传递为type之后获取到的名称总是含有包名.网上查了获取不含包名的方法.但是不好使.每次获取到的结果都是
java.lang......这里坑了半天后.就开始想别的办法了.换了个参数类型.不用Type了.用Class<?>.
哈.果然好使.东西都拿到了.多少理解一点.但还是用文字叙述不出来.可能掌握的不够深吧.先不管了.问题解决就好.
查询语句也能拼出来了.
下一步.要实现一个baseDao.
对了.这里插一句.java每个变量都要写get.set.被微软爸爸惯坏的我实在是感觉麻烦的很.于是上网百度了一下.没想到还真有个小工具.
lombok.可以实现我想要的功能.于是方便了不少.不用写get,set.也可以愉快的用var了
baseDao这里需要一个类型约束.就.net里面的where.可是限制泛型必须具有什么属性
java可能对叫法理解的不好吧.百度好久也终于找到了.语法是下面这个样子.
class BaseDAOImpl<T extends DbModel>
到这里基本就差不多了.给大家截图看几个代码.关于中文变量.请您无视.您看思路想法就好.好处我也知道.坏处我也清楚.

一个文件中2个class 这里是研究需要为了方便.规不规范不要紧.

BaseDao

Sql语句拼接

使用

搞定,ok
3.java的hello word.继承.泛型.反射.配置项.数据库操作.lombok的更多相关文章
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承- 一个子类只能有一个父类- 一个父类可以派生出多个子类这里写图片描述子类继承了父类,就继承了父类的方法和属性.在子类中,可以使用父类中定义的方法和属性, ...
- 结合java的反射和泛型性质简化JDBC和相应的同步等服务器数据库操作代码
github地址:https://github.com/hzphzp/HeartTrace_Server 我们的服务器端数据库并没有用sqllite, 而是直接用mysql,并且用JDBC直接进行操作 ...
- Java基础 -- 深入理解Java类型信息(Class对象)与反射机制
一 RTTI概念 认识Claa对象之前,先来了解一个概念,RTTI(Run-Time Type Identification)运行时类型识别,对于这个词一直是 C++ 中的概念,至于Java中出现RT ...
- Java编程的逻辑 (37) - 泛型 (下) - 细节和局限性
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- 反射与泛型--使用泛型反射API打印出给定类的所有内容
package chapter8Demos; import java.lang.reflect.*; import java.util.Arrays; import java.util.Scanner ...
- Java编程的逻辑 (35) - 泛型 (上) - 基本概念和原理
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- Java复习3-类的继承
前言 本次学习面向对象设计的另外一个基本概念:继承(inheritance).这是Java程序设计中的一项核心技术.另外,还要学习反射(reflection)的概念. 继承 类.超类.子类 publi ...
- Java之旅(2)—反射
1. 概念 反射就是将java类中的各种成分映射成对应的java类.之前我们已经讲过了Class类,也明确了一个java类中用一个Class类的对象来表示,一个类中的组成部分有:成员变量,方法 ...
随机推荐
- HoloLens开发手记 - 构建2D应用 Building 2D apps
HoloLens可以让我们在真实世界中看到全息图像内容.但是它本质上还是一台Windows 10设备,这意味着HoloLens可以以2D应用形式运行Windows Store里的大部分UWP应用. 目 ...
- ADO.NET 数据库操作类
操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类 一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using ...
- 第一章:JavaScript简介
1:JavaScript诞生于1995年 2:一个完整的JavaScript实现应该由三部分组成 * 核心(ECMAScript):提供核心语言功能 *文档对象模型(DOM):提供访问和操作网页内容的 ...
- JAVA中的访问修饰符和包
一.JAVA访问修饰符 访问修饰符,用来控制类中成员的可见性 有四个访问修饰符,分别是:default,private,public,protected 1.default(默认):默认权限,不用写的 ...
- AKKA学习笔记
AKKA学习笔记总结 01. AKKA 1. 介绍: Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程 ...
- 微软Visual Studio二十周年:VS2017于3月7日发布
二十年前的今天,微软正式发布Visual Studio 97.如今二十年已经过去,微软宣布全新的Visual Studio 2017即将在美国当地时间3月7日正式发布. VS97是Visual Stu ...
- 【.Net Framework 体积大?】不安装.net framework 也能运行!?原理补充-3
继续补充点吧.接上一篇,我们实现了.net framework的精简的步骤. 有网友评论了,那个核心的 mscoree.dll 从.net framework 2.0开始,微软开始了新的CLR承载模型 ...
- Arduino入门学习
一直听到许多做物联网.智能家居的控制器使用的是Arduino,从师兄那里拿到了一块Arduino开发板,进行了一下午的学习,感觉这个适合小孩子们玩:) 废话少说,总结一下,便于以后可能会用得到.我主要 ...
- 一个web应用的诞生(6)--用户账户
之前登录注册的功能都已经完成,但是登录成功回到首页发现还是白茫茫的一片,对的,title一直都写得博客,那么最终目的也是写出一个轻博客来,但是,在发表文章之前是不是要先记录一下登录状态呢? 用户登录 ...
- c# 读取app.config遇到生成X.config.config问题
string exePath = System.IO.Path.Combine(Environment.CurrentDirectory, "WindowsFormsApp.exe" ...