zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    我对管理信息系统定位的理解
    正斜杠和反斜杠-windows、web、c语言大讨论
    java异常处理的两种方法
    使用throws抛出异常
    课后作业
    每日自学
    《梦断代码》读后感
    每日自学
    每日自学
    每日自学
  • 原文地址:https://www.cnblogs.com/lansehai/p/6566520.html
Copyright © 2011-2022 走看看