迷迷茫茫的开始了第一步.弄个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. Hadoop权威指南:压缩

    Hadoop权威指南:压缩 [TOC] 文件压缩的两个好处: 减少储存文件所需要的磁盘空间 加速数据在网络和磁盘上的传输 压缩格式总结: 压缩格式 工具 算法 文件扩展名 是否可切分 DEFLATE ...

  2. requests从api中获取数据并存放到mysql中

    python的requests库是一个非常强大的库,requests的安装方法十分简单,用: pip install requests 即可安装requests,安装成功后: import reque ...

  3. .Net程序员学用Oracle系列(12):增删改查

    1.插入语句 1.1.INSERT 1.2.INSERT ALL 2.删除语句 2.1.DELETE 2.2.TRUNCATE 3.更新语句 3.1.UPDATE 3.2.带子查询的 UPDATE 3 ...

  4. C++编程练习(7)----“KMP模式匹配算法“字符串匹配

    子串在主串中的定位操作通常称做串的模式匹配. KMP模式匹配算法实现: /* Index_KMP.h头文件 */ #include<string> #include<sstream& ...

  5. 不是技术牛人,如何拿到国内IT巨头的Offer (转载)

    原文地址:http://blog.csdn.net/lsldd/article/details/13506263 不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这 ...

  6. GCD 多线程 ---的记录 iOS

    先写一个GCD static UserInfoVoModel *userInfoShare = nil; +(instancetype)shareUserInfoVoModel { static di ...

  7. 基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框

    alert.confirm.prompt这样的js对话框在selenium1 时代处理起来比价麻烦,常常要用autoit来帮助处理.而现在webdriver对这些弹出框做了专门的处理,使用seleni ...

  8. 用phpcms如何将静态页面制作成企业网站,头部加尾部

    首先,先要准备好这个静态网页的源文件,如图 bs里面是一些css和js的文件,img则是放图片的,文件中的index是网页的首页 运行一下,看看 是这样的 然后打开phpcms文件,上篇博客中有提到, ...

  9. 一个Python小白5个小时爬虫经历

    前言 最近业余在做一个基于.NET Core的搜索项目,奈何基层代码写好了,没有看起来很华丽的数据供测试.很巧的也是博客搜索,于是乎想到了博客园.C#也能做做页面数据抓取的,不过在博客园看到的大部分都 ...

  10. java初级开发程序员(第五单元)

    1.循环结构(一):   语法:       while(循环条件){ //循环操作 } 示列代码: int i=1; while(i<=100){ System.out.println(&qu ...