一切福田,不離方寸,從心而覓,感無不通。

Spring Boot(六):如何优雅的使用 Mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是 Mybatis,虽然个人比较喜欢 Jpa 这种极简的模式,但是为了项目保持统一性技术选型还是定了 Mybatis 。到网上找了一下关于 Spring Boot 和 Mybatis 组合的相关资料,各种各样的形式都有,看的人心累,结合了 Mybatis 的官方 Demo 和文档终于找到了最简的两种模式,花了一天时间总结后分享出来。 Orm 框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句 Sql 的 Hibernate,一个是可以灵活调试动态 Sql 的 Mybatis ,两者各有特点,在企业级系统开发中可以根据需求灵活使用。发现一个有趣的现象:传统企业大都喜欢使用 Hibernate ,互联网行业通常使用 Mybatis 。 Hibernate 特点就是所有的 Sql 都用 Java 代码来生成,不用跳出程序去写(看) Sql ,有着编程的完整性,发展到最顶端就是 Spring Data Jpa 这种模式了,基本上根据方法名就可以生成对应的 Sql 了,有不太了解的可以看我的上篇文章Spring Boot(五): Spring Data Jpa 的使用。 Mybatis 初期使用比较麻烦,需要各种配置文件、实体类、Dao 层映射关联、还有一大推其它配置。当然 Mybatis 也发现了这种弊端,初期开发了generator可以根据表结果自动生产实体类、配置文件和 Dao 层代码,可以减轻一部分开发量;后期也进行了大量的优化可以使用注解了,自动管理 Dao 层和配置文件等,发展到最顶端就是今天要讲的这种模式了,mybatis-spring-boot-starter 就是 Spring Boot+ Mybatis 可以完全注解不用配置文件,也可以简单配置轻松上手。 现在想想 Spring Boot 就是牛逼呀,任何东西只要关联到 Spring Boot 都是化繁为简。 mybatis-spring-boot-starter 官方说明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot 其实就是 Mybatis 看 Spring Boot 这么火热也开发出一套解决方案来凑凑热闹,但这一凑确实解决了很多问题,使用起来确实顺畅了许多。mybatis-spring-boot-starter主要有两种解决方案,一种是使用注解解决一切问题,一种是简化后的老传统。 当然任何模式都需要首先引入mybatis-spring-boot-starter的 Pom 文件,现在最新版本是 2.0.0 […]

龙生   30 Sep 2020
View Details

.NET Core 中的路径问题

NET Core 应用程序相对于以前的.NET Framework 应用程序在启动运行的方式上有一定的差异,今天就来谈一谈这个获取应用程序启动路径的问题。 1.工作路径 WorkingDirectory 下面的两种方式都可以获取工作路径,结果都是一样的:

其实所谓的工作路径就是我们应用程序的启动路径,所以我们平时所说的获取应用程序的启动路径,也是通过上面的方式。 (1)我们通过VS F5直接运行 VS会先编译我们的项目,输出到Debug\对应的sdk版本 目录下,然后以这个目录作为工作路径,启动我们的应用程序。 (2)通过dotnet 命令运行 我们在项目根目录,执行 dotnet run命令: 我们执行 dotnet run命令来启动时,对于程序的工作路径就是执行命令的路径,所以说,获取到的路径变化了。但是我们通过dotnet run命令运行的应用程序文件实际所在的目录也是和上面的目录一样的,即:Debug\对应的sdk版本,我们可以通过代码来测试一下: 新加的代码是获取程序集所在的路径,可以发现也是在 Debug\对应的sdk版本 目录下的。 我们将程序发布到 D:\test 目录下 可以看到,前两种方式获取到的都是执行dotnet命令所在的目录即工作目录,后一种方式是获取到的我们应用程序所在的目录。 2.结论 通过上面的测试,我们可以得出结论,.NET Core 应用程序获取工作路径/启动路径,就是获取的执行dotnet命令时所在的目录,所以当我们在Linux等系统部署时,设置守护进程时,记得一定要将工作路径设置为程序文件所在的目录,不然应用程序获取到的路径将不会是应用程序文件所在的目录,当我们在应用程序里设置了一些相对路径,诸如读取配置文件,写日志(Log4net、NLog),将会与我们的预期不一样。因为相对路径,是默认相对于应用程序的工作路径的。

AppContext.BaseDirectory 也可以获取应用程序所在目录   from:https://www.cnblogs.com/stulzq/p/9220502.html

龙生   30 Sep 2020
View Details

git命令log与reflog的比较

用git命令,想看到自己的操作记录,则可以使用log与reflog,它两个的区别如下: 1.git log 命令可以显示所有提交过的版本信息 例如 如果感觉太繁琐,可以加上参数  --pretty=oneline,只会显示版本号和提交时的备注信息 2.git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作) 例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。   from:https://blog.csdn.net/u013252047/article/details/80230781

龙生   29 Sep 2020
View Details

.NET Core 如何使用Session

第一步先注册session: 在Startup.cs文件中的ConfigureServices方法中添加:

在Startup.cs文件中的Configure方法中加上这一句代码

第二步从nuget安装Microsoft.AspNetCore.Mvc引用,直接使用自带的方法进行设置和获取session 不过自带的方法设置和获取的session值是byte[]类型的,可以从nuget安装并引用Microsoft.AspNetCore.Http并使用里面的扩展方法

  扩展后的方法为

  下面这个图片里面的方法是自带的操作session的方法   下面这个图片是扩展的方法: from:https://www.cnblogs.com/dawenyang/p/9227713.html

龙生   29 Sep 2020
View Details

ASP.NET Core 3中的自定义授权

您有一个Web API,并且想要实现自己的授权逻辑,该怎么做?您需要做四件事。 1. 创建您的自定义授权属性 2. 在控制器上使用自定义授权属性 3. 在自定义请求管道中间件中创建授权逻辑 4. 启动时注册中间件   创建您的自定义授权属性

  在控制器上使用自定义授权属性

  在自定义请求管道中间件中创建授权逻辑

  启动时注册中间件

确保在调用app.UseRouting()之后添加中间件。这样可以确保在将路由  信息添加到HttpContext 后执行您的中间件。   from:https://www.cnblogs.com/bisslot/p/12330985.html

龙生   28 Sep 2020
View Details

gradle 淘宝镜像

配置gradle镜像 在 %USERPROFILE%\.gradle下面创建新文件init.gradle,输入下面的内容并保存

  配置maven镜像 复制E:\maven\apache-maven-3.3.9\conf中的settings.xml到%USERPROFILE%\.m2中,修改mirrors即可。

  build.gradle 配置

  作者:liurongming 链接:https://www.jianshu.com/p/67b547b4e6ae 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   25 Sep 2020
View Details

Linux查看和编辑文件

例如,要想test.txt文件添加内容"I am a boy",test.txt在当前目录中 方法一:vi编辑法 打开终端,输入vi test.txt 回车,按a或i进入编辑模式,输入 I am a boy,然后按esc键退出编辑模式,输入:wq保存并退出。 方法二:echo命令法 打开终端,输入echo ‘I am a boy’ >> ./test.txt 注:追加单行文本法 方法三:cat命令法 cat >> ./test.txt <<EOF I am a boy EOF 注:结尾的EOF要顶格,成对出现,可以其它字符代替。 方法四:cat编辑法 cat >> ./test.txt (回车后开始编辑输入内容) I am a boy. 按cntl+d组合键结束编辑。   VIM编辑器,可以新建文件也可以修改文件,命令为:vim  /usr/local/con.cfg 如果这个文件,以前是没有的,则为新建,则下方有提示为新文件,如果文件已存在,则没有提示。 进入编辑器后,我们先按"I”,即切换到“插入”状态。就可以通过上下左右移动光标,或空格、退格及回车等进行编辑内容了,和WINDOWS是一样的了。 当文本编辑结束之后,通常需要退出编辑器。退出编辑器又分为4种情况:保存退出、正常退出、不保存退出及强制退出。  按键盘左上角的"ESC",左下角的插入状态不见了 然后这时,我们输入“冒号”,即":"(不需双引号),在下方会出现冒号,等待输入命令,如图,我输入的是WQ。功能如下。 W:write,写入 Q:quit,退出 再回车,就保存退出了 其实,保存退出还有二个方法: A:在最后输入命令时,直接输入"x",也是一样的,即X=WQ。 B:最快捷的方法:按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ,就可以保存退出了,即是按2下大写的Z。 可以用查看命令:cat查看其内容:cat  /usr/local/con.cfg 正常退出有个前提条件是:打开的文本文件在内容上没有被改动过。 按了ESC后再输入冒号,在输入命令时,直接输入"q", 不保存退出的方法,很多时候打开了文件,或者修改了一些地方,才发现错了,非常需要不保存退出。 先按ESC,再输入冒号,在输入命令时,直接输入"q!" 强制退出。这个实在是不应该做的操作,因为很操蛋! 先按ESC,再按冒号,在输入命令时,直接输入"!"   参考: https://jingyan.baidu.com/article/495ba8410ff14d38b30ede01.html   from:https://www.cnblogs.com/bingle/p/9785621.html

龙生   25 Sep 2020
View Details

Linux查看文件内容的5种方式

目录 1. more指令 —— 分页显示文件内容 2. less指令 —— 可以向前或向后查看文件内容 3. head指令 —— 查看文件开头的内容 4. tail指令 —— 显示文件尾部的内容 5. cat指令 —— 显示文件内容 1. more指令 —— 分页显示文件内容 more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按 b 键就会往回(back)一页显示,其基本用法如下: more    file1             查看文件file1的文件内容; more   -num   file2    查看文件file2的内容,一次显示num行; more   +num   file3   查看文件file3的内容,从第num行开始显示; 2. less指令 —— 可以向前或向后查看文件内容 less指令查看文件内容时可以向前或向后随意查看内容; less指令的基本用法为: less   file1    查看文件file1的内容; less   -m    file2     查看文件file2的内容,并在屏幕底部显示已显示内容的百分比; 按空格键显示下一屏的内容,按回车键显示下一行的内容; 按  U  向前滚动半页,按  Y   向前滚动一行; 按[PageDown]向下翻动一页,按[PageUp]向上翻动一页; 按   Q   退出less命令; 3. head指令 —— 查看文件开头的内容 head指令用于显示文件开头的内容,默认情况下,只显示文件的头10行内容; head指令的基本用法: head  -n  <行数>   filename      显示文件内容的前n行; 例如:head   -n   5   file1     显示文件file1的前5行内容 […]

龙生   25 Sep 2020
View Details

MariaDB 10.4.12 Stable Row size too large (> 8126). Changing some columns to TEXT or BLOB may help.

MariaDB 10.4.12 Stable# Row size too large (> 8126). Changing some columns to TEXT or BLOB may help.# 以下两步解决问题 1. 修改my.ini文件在[mysqld]下面加入下面三行#

  2. 新建一个查询进行如下操作将nombre_tabla改成你的表名#

    from:https://www.cnblogs.com/fanlinglong/p/12425116.html

龙生   24 Sep 2020
View Details

搭建gitlab仓库

稍具规模一点的公司都会搭建属于自己的git,svn,而内部git用的最多的则是gitlab,虽然官网已经提供了非常多的功能,但内网搭建更能保证项目的私有性,只有公司内部员工才可以访问,更加安全。 这里演示gitlab的搭建与简单配置 操作 安装一些依赖软件包,SSH一般系统是默认安装好的,不过也不排除一些最小安装的系统没有sshd服务。

  关闭防火墙,或者开放HTTP的端口

  安装邮件服务,当gitlab想要通过邮件通知,也可以另外配置其它的邮件服务器

  从官网获取一件安装脚本,当然自己手动安装也是可以的gitlab下载地址,使用官网脚本会简单一些。执行这一步会如果使用CentOS系统,会添加gitlab的yum源

  安装gitlab

  上面已经安装好了gitlab,不过可以稍作一些配置,配置gitlab监听的地址与端口,gitlab的配置文件在/etc/gitlab/目录下,主要配置文件为gitlab.rb我修改了下gitlab.rb文件中的nginx监听地址,

  里面的配置项非常的多,可以对照官网文档根据需要修改。gitlab配置选项 运行gitlab命名,并重启

  打开浏览器查看效果,第一次打开页面会让我们设置root用户的密码。记住自己设置的密码,再次刷新进入登录页面   以管理员身份登录,默认的用户是root,密码是刚才设置的。 搭建好环境之后,下面的则根据官方文档解释,自己摸索做一些根据自己需要的修改,二次开发也可以。   最后 公司内部一般都会搭建内部gitlab仓库,自己搭建下摸索着玩玩。   参考 gitlab下载地址 gitlab配置选项   作者:Real_man 链接:https://www.jianshu.com/p/ade38a53b1ac 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   23 Sep 2020
View Details
1 2 4