迷迷茫茫的开始了第一步.弄个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的更多相关文章

  1. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  2. JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]

    类的继承 Java只支持单继承,不允许多重继承- 一个子类只能有一个父类- 一个父类可以派生出多个子类这里写图片描述子类继承了父类,就继承了父类的方法和属性.在子类中,可以使用父类中定义的方法和属性, ...

  3. 结合java的反射和泛型性质简化JDBC和相应的同步等服务器数据库操作代码

    github地址:https://github.com/hzphzp/HeartTrace_Server 我们的服务器端数据库并没有用sqllite, 而是直接用mysql,并且用JDBC直接进行操作 ...

  4. Java基础 -- 深入理解Java类型信息(Class对象)与反射机制

    一 RTTI概念 认识Claa对象之前,先来了解一个概念,RTTI(Run-Time Type Identification)运行时类型识别,对于这个词一直是 C++ 中的概念,至于Java中出现RT ...

  5. Java编程的逻辑 (37) - 泛型 (下) - 细节和局限性

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  6. 反射与泛型--使用泛型反射API打印出给定类的所有内容

    package chapter8Demos; import java.lang.reflect.*; import java.util.Arrays; import java.util.Scanner ...

  7. Java编程的逻辑 (35) - 泛型 (上) - 基本概念和原理

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  8. Java复习3-类的继承

    前言 本次学习面向对象设计的另外一个基本概念:继承(inheritance).这是Java程序设计中的一项核心技术.另外,还要学习反射(reflection)的概念. 继承 类.超类.子类 publi ...

  9. Java之旅(2)—反射

    1.     概念 反射就是将java类中的各种成分映射成对应的java类.之前我们已经讲过了Class类,也明确了一个java类中用一个Class类的对象来表示,一个类中的组成部分有:成员变量,方法 ...

随机推荐

  1. 新手初学Redis之基础知识命令

    笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面.像其中的mongodb,redis等等.当初也没有深入的去了解Redis,直到自己前段时间在写一个web ...

  2. Codeforces 708A Letters Cyclic Shift

    A. Letters Cyclic Shift time limit per test:1 second memory limit per test:256 megabytes input:stand ...

  3. 第一章:JavaScript简介

    1:JavaScript诞生于1995年 2:一个完整的JavaScript实现应该由三部分组成 * 核心(ECMAScript):提供核心语言功能 *文档对象模型(DOM):提供访问和操作网页内容的 ...

  4. 列存储段消除(ColumnStore Segment Elimination)

    列存储索引是好的!对于数据仓库和报表工作量,它们是真正的性能加速器.与聚集列存储结合,你会在常规行存储索引(聚集索引,非聚集索引)上获得巨大的压缩好处.而且创建聚集列存储索引非常简单: CREATE ...

  5. 根据dba_hist_osstat统计CPU占用情况

    在11g里面,视图dba_hist_osstat用来记录OS级别的time时间指标.视图dba_hist_osstat_name显示了相关的指标名称. SYS@/dzgddb> select * ...

  6. Ext Js详解指南

    什么是Ext JS 走进Ext的世界 Ext JS是一款富客户端开发框架它基于javascript.HTML和CSS开发而成,无需安装任何插件即可在常用浏览器中创建出绚丽的页面效果. 个人总结Ext ...

  7. BZOJ 4089:[Sdoi2015]graft(SDOI 2015 Round 2 Day 2)

    别人家的神选系列,我只会做这道题QAQ 题目描述: 给定一颗树,加上k条边,将n个点染色,相邻两点不同,记颜色为i的又ti个,求$$\frac{\sum_{i=1}^{n} \frac{ti}{i}} ...

  8. [Usaco2014 Open Gold ]Cow Optics (树状数组+扫描线/函数式线段树)

    这道题一上手就知道怎么做了= = 直接求出原光路和从目标点出发的光路,求这些光路的交点就行了 然后用树状数组+扫描线或函数式线段树就能过了= = 大量的离散+模拟+二分什么的特别恶心,考试的时候是想到 ...

  9. OpenGl编程指南第7版(红宝书)环境配制

    环境 OS:win7 旗舰版SP1 64位 编译器: VS 2013 express 的cl 软件 glut. 在这个页面https://www.opengl.org/resources/librar ...

  10. java split函数应该注意的问题

    split函数的参数是一个String,但是这个String会被解释成一个正则表达式. 比如 "test.txt".split(".").length得到的值是 ...