01

关注"一猿小讲"朋友,都知道以往的文章一直倡导拒绝 CRUD,那到底什么是 CRUD?今天咱们就聊聊 Java 妹子小猿与数据库老头交互的事儿。

产品小汪铿锵有力的说:小猿同学,咱们近期要推一爆款产品,你先实现用户基本的登录的功能。

啥玩意?小猿内心嘀咕嘀咕:爆款产品,还基本的登录,那不就是实现用户的 CRUD(增删改查)么?

小汪一句话,累死三军。扯皮一上午的会议终于结束了,于是小猿便叫了个外卖,填补了肚子的空虚后,小猿习惯性的在脑海里,开始了爆款产品的从 0 到 1 的脑图搭建。

小猿的思路是这样的:先分析一下产品汪的需求,看看是否会有遗漏的需求功能点;然后进行数据库表结构设计;接着就是小猿喜欢的码代码操作。

小猿码代码的方式,那是出了名的相当特别的认真,所以引来了大家的围观。

之前只是道听途说,今日一见果然名不虚传。只见小猿先是在 sqlmaps 文件苦下了一番功夫,一个字母、一个标点的去编写映射文件;接着又一个一个去定义实体类,数据库表的字段一个一个的进行映射;然后用同样认真的方式去编写 dao 的代码;最后又回过头确认数据库表字段与实体类是否一一对应。

看着小猿认真的态度,确实值得赞扬。但是围观小猿码代码之后,看得我反而肾疼,这不都是重复性劳动么,难道就没有什么好的方式可以推荐给小猿吗?

02

带着小猿徒手造工具。

小猿,你找个你比较钟意的目录,创建个文件夹,你命名为 mybatis-generator,其实起啥名字无所谓啊,这个就是你的工具包目录,下面的东西都放这个目录中。

小猿,看看你电脑上有没有连接数据库的驱动包,没有咱就下载一个,给你个下载链接,再给你一分钟时间,把 jar 包下载一下,后面会用到,我去抽根烟。

https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar

小猿你下载好了没,我一根烟都抽完啦。

既然你下载完了,那就再看看电脑上有没有这个包 mybatis-generator-core-1.3.2.jar,别管它是干啥用的,没有就按照下面的地址下载就是啦,反正后面要用到。

https://repo1.maven.org/maven2/org/mybatis/generator/mybatis-generator-core/1.3.2/mybatis-generator-core-1.3.2.jar

小猿,到这咱们的准备工作差不多了,但是还需要你创建个配置文件 generatorConfig.xml,不用操心文件内容,直接把下面的代码拿过去改吧改吧就行啦。注意一定要把里面涉及到的目录,都改成你电脑上的目录,你先修改一会儿,我去泡杯咖啡喝喝。内容如下(注意一定要修改目录)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><!-- 指定数据连接驱动jar地址 --><classPathEntrylocation="/app/mybatis-generator/mysql-connector-java-5.1.38.jar" /><!-- 指定数据连接驱动jar地址 --><context id="db2Tables" targetRuntime="MyBatis3"><plugin type="org.mybatis.generator.plugins.SerializablePlugin"/><commentGenerator><property name="javaFileEncoding" value="UTF-8"/><!-- 是否生成注释代时间戳 --><property name="suppressDate" value="true" /><!-- 是否取消注释 --><property name="suppressAllComments" value="false" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/baokuan"userId="root" password="root" /><!-- targetProject:生成实体类存放的目录 --><javaModelGenerator targetPackage="com.cool.baokuan.modules.model"targetProject="/app/mybatis-generator/src"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.cool.baokuan.modules.dao"targetProject="/app/mybatis-generator/src"><property name="enableSubPackages" value="true" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator targetPackage="com.cool.baokuan.modules.dao"targetProject="/app/mybatis-generator/src" type="XMLMAPPER"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- 指定数据库表 --><table tableName="T_USER" domainObjectName="User"enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false"selectByExampleQueryId="false"/></context>
</generatorConfiguration>

小猿,改完目录了吧?

既然改完了,那就差最后一步了,你在创建个执行脚本,你的系统是 Windows,所以脚本名称为 run.bat,我的是Mac,所以我的脚本名称为 run.sh。创建完成再把下面的内容 copy 进去。

Java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

好了,小猿,恭喜你已经徒手完成工具包的搭建,你自己看看效果,满意不?

小猿,是骡子是马,咱们都应该牵出来溜溜。到你小试牛刀、一展歌喉的时候啦。一键运行 run.bat 或者 run.sh 试试。

哇塞,看到上面的效果,小猿着实惊呆啦,因为有了这个工具,以后再也不用重复的写映射文件、写实体类、写 dao 了,就只配置配置数据库的表名就行啦,简直太帅啦。

小猿,切莫欣喜过度。你以后使用这个工具时,一定要注意修改 generatorConfig.xml文件中的以下几个地方,不然会出幺蛾子。

1. 修改指定数据连接驱动 jar 地址;
2. 修改数据库连接的url、用户名、密码;
3. 修改 targetProject 目录为你电脑的目录;
4. 修改数据库表。

好了,小猿,师傅领进猿门,修行在于个人,以后就看你自己的造化啦(

Java程序员玩转数据库的CRUD相关推荐

  1. java程序员玩游戏吗_Java程序员:工作还是游戏 该好好衡量一下

    前阵子我终于下定决心,删掉了硬盘里所有的游戏. 身为一个程序猿,每天都要和各种新技术打交道,闲暇时间,总还得看一下各大论坛,逛逛博客园啥的,给自己充充电.游戏的话,其实我自小就比较喜欢,可以算是一种兴 ...

  2. java程序员具体是做什么的?我来分享一天的工作内容

    现在我来讲一下今天的工作情况.今天的工作内容是,我们一个项目上线了.测试那边测试了一下,然后我这边负责改bug.但是在改的过程中,我遇到了一些让自己心里特别不爽的情况. 我们的产品那块逻辑没有写清楚. ...

  3. Java程序员春招三面蚂蚁金服,开源掌机玩java

    选择 在现在这个浮躁而又拜金的社会,我相信很多人做技术并非出于热爱,只是被互联网的高薪吸引,毕竟技术岗位非常枯燥,不仅要面对奇奇怪怪的需求,还要不停的充实自己避免被淘汰.所以想要吃好技术这碗饭并不容易 ...

  4. java数据库重要吗_我个人感觉数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的。为了帮助大家更好的来回顾T-SQL...

    我个人感觉数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的.为了帮助大家更好的来回顾T-SQL,本人利用空闲的时间整理的一下T-SQL ...

  5. Java程序员的专属社区 |【Java程序员大本营】新人必看玩转攻略

    "一个人走的快,一群人走的远" 这是Java程序员专属社区创立的初衷. [Java程序员大本营]是面向工作1-3年,希望提升专业技术能力的Java 开发者建立, 致力于Java知识 ...

  6. Java程序员面试题

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  7. java web 显示项目下的图片_[适合初中级Java程序员修炼手册从0搭建整个Web项目](一)...

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206种一棵树最好的时间是十年前,其次是现在 six-finger-web 一个Web后端 ...

  8. 非Java程序员转行Java-day01-入门基础

    1.学习大纲介绍 课件中的代码及资料:提取码:yexw 学习中的依赖包及安装文件:提取码 :8par 2.数据流向分析 2.1.应用型软件开发本质 增删改查(非常重要,5星) 2.2.大型网站演变历史 ...

  9. Java程序员涨薪必备技能

    2019独角兽企业重金招聘Python工程师标准>>> Java程序员涨薪必备技能 Java程序员涨薪必备技能 工作1-3年,当我们向老板提出加薪的时候,或者跳槽去"捡&q ...

最新文章

  1. WPF解析TTF 字体
  2. BZOJ 4327 [JSOI2012]玄武密码 (AC自动机)
  3. 【数据结构与算法】之深入解析“分割数组的最大值”的求解思路与算法示例
  4. [SDOI2005]动物园 匹配
  5. python的for语句要用冒号吗_python中循环的写法 for
  6. 编写自己的Windows Live Writer插件
  7. [免费专栏] Android安全之绕过SSL Pinning抓HTTPS数据
  8. js下载视频(mp4格式)
  9. 计算机的网络测速,网速知识 - 专业网速测试, 宽带提速, 游戏测速, 直播测速, 5G测速, 物联网监测 - SpeedTest.cn...
  10. win7 设置电脑保护色
  11. EXCEL数组公式(2)---数组公式的基础概念等
  12. sublime text 64位 3.3114 绿色汉化版下载地址
  13. mongodb异常恢复 --repair
  14. 4t gpt索引 linux如何挂载,LINUX教学:Ubuntu 16.04通过GPT挂载硬盘
  15. 论文投稿指南——中文核心期刊推荐(计算机技术2)
  16. mysql无密码登录
  17. BUG记录--Iconfont图标在IE8浏览器的兼容问题
  18. RStudio安装tsna时报错installation of package ‘tsna’ had non-zero exit status
  19. win7的远程桌面连接在哪
  20. “新基建”视野下的零售革新:从“模式”面子到“数字化”里子

热门文章

  1. 探讨使网面越来越臃肿的原因
  2. html 文件上传与移除,WebUploader 解决文件屡次上传和删除上传文件的问题
  3. 状态模式设计程序:游戏中英雄根据不同的体力值可以进行休息、防御、普通攻击、技能攻击。
  4. php 实现paypal订阅
  5. Android SDK 离线包安装
  6. 公众平台新增修改文章错别字功能 每篇文章允许被修改一次仅限正文内五个字...
  7. MySQL开发规范[转自网络]
  8. IDEA 安装 mysql数据库 并访问 (Mac版)
  9. 深入了解电感与磁珠的异同
  10. 打开System x服务器的IMM2 Web界面