实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以

大家好,我是雄雄,前两天一直在解决使用idea整合SSM的报错问题,今天,给大家带来的是如何使用插件快速生成实体类、接口以及映射文件,相信你看过本文之后对你有很大的帮助

前言

每次我们在写代码的时候,都会对应数据表来写实体类,以及接口中常用的增删改查方法,包括Mapper映射文件,一个两个表还可以,如果数据表多的情况下,可见工作量也会很大,对此有没有一种很好的解决办法呢?答案当然是有的,下面我们就来看看如何让程序自动生成这些代码呢?

01

下载所需的工具

需要下载“mybatis反向生成工具”(可在本公众号【雄雄的小课堂】后台回复:mybatis反向生成工具,即可免费下载)。

02

修改配置文件generatorConfig.xml

打开下载的工具,进入lib文件夹,右击用记事本(其他编辑器也可以)打开generatorConfig.xml文件,如下所示:

数据库表设计如下:

所在数据库为:schooldb

1.加载所对应数据库的jar,我在这里用的是mysql数据库,所以就得需要mysql的驱动jar文件(jar文件已经放至lib目录中,oracle的也有),将名字写在下面的地方。

<classPathEntry  location="mysql-connector-java-5.1.25-bin.jar"/>  <context id="DB2Tables"  targetRuntime="MyBatis3">

mysql-connector-java-5.1.25-bin.jar就是数据库的jar包。

2.连接配置(此步骤的作用就是连接数据库),将对应的driverClass,connectionURL,userId和password写上,如下是我的,你就把用户名和密码改成你的就行。

<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/schooldb" userId="root" password="root"> </jdbcConnection>

3.配置生成实体类、Dao接口以及映射文件的路径,我在这放在了org.dao里面了,最后在放在src下面,如下代码:

<javaModelGenerator targetPackage="org.entity" targetProject="src"><!-- 是否在当前路径下新加一层schema,eg:fase路径com.shkj.pojo, true:com.shkj.pojo.[schemaName] --><property name="enableSubPackages" value="true"/><!-- 设置是否在getter方法中,对String类型字段调用trim()方法 --><!-- <property name="trimStrings" value="false"/> --></javaModelGenerator>  <!-- 生成xml文件的路径,这个路径可以自动生成,但是必须有src这个路径--><sqlMapGenerator targetPackage="org.dao" targetProject="src">  <property name="enableSubPackages" value="true"/>  </sqlMapGenerator>  <!-- 生成Dao类的路径,这个路径可以自动生成,但是必须有src这个路径--><javaClientGenerator type="XMLMAPPER" targetPackage="org.dao" targetProject="src">  <property name="enableSubPackages" value="true"/>  </javaClientGenerator>

4.根据表生成对应的类名:

<table tableName="BookManage" domainObjectName="BookManage" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>

注意:这是一个表,如果有多个表的话,需要写多个<table>标签。

03

开始生成

打开文件中的cmd.bat批处理,双击进入之后自己会定位当前所在的目录,然后输入:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite  回车即可。

如下所示:

最后打开文件夹中的src目录,就会发现想要的都在里面。

实体类:

package org.entity;import java.util.Date;public class BookManage {private Integer bid;private String bname;private String bauthor;private Date btime;private Integer btype;public Integer getBid() {return bid;}public void setBid(Integer bid) {this.bid = bid;}public String getBname() {return bname;}public void setBname(String bname) {this.bname = bname;}public String getBauthor() {return bauthor;}public void setBauthor(String bauthor) {this.bauthor = bauthor;}public Date getBtime() {return btime;}public void setBtime(Date btime) {this.btime = btime;}public Integer getBtype() {return btype;}public void setBtype(Integer btype) {this.btype = btype;}
}

Dao接口:

package org.dao;import org.entity.BookManage;public interface BookManageMapper {int deleteByPrimaryKey(Integer bid);int insert(BookManage record);int insertSelective(BookManage record);BookManage selectByPrimaryKey(Integer bid);int updateByPrimaryKeySelective(BookManage record);int updateByPrimaryKey(BookManage record);
}

Dao接口所对应的Mapper文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="org.dao.BookManageMapper" ><resultMap id="BaseResultMap" type="org.entity.BookManage" ><id column="bid" property="bid" jdbcType="INTEGER" /><result column="bname" property="bname" jdbcType="VARCHAR" /><result column="bauthor" property="bauthor" jdbcType="VARCHAR" /><result column="btime" property="btime" jdbcType="TIMESTAMP" /><result column="btype" property="btype" jdbcType="INTEGER" /></resultMap><sql id="Base_Column_List" >bid, bname, bauthor, btime, btype</sql><select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >select <include refid="Base_Column_List" />from bookmanagewhere bid = #{bid,jdbcType=INTEGER}</select><delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >delete from bookmanagewhere bid = #{bid,jdbcType=INTEGER}</delete><insert id="insert" parameterType="org.entity.BookManage" >insert into bookmanage (bid, bname, bauthor, btime, btype)values (#{bid,jdbcType=INTEGER}, #{bname,jdbcType=VARCHAR}, #{bauthor,jdbcType=VARCHAR}, #{btime,jdbcType=TIMESTAMP}, #{btype,jdbcType=INTEGER})</insert><insert id="insertSelective" parameterType="org.entity.BookManage" >insert into bookmanage<trim prefix="(" suffix=")" suffixOverrides="," ><if test="bid != null" >bid,</if><if test="bname != null" >bname,</if><if test="bauthor != null" >bauthor,</if><if test="btime != null" >btime,</if><if test="btype != null" >btype,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="bid != null" >#{bid,jdbcType=INTEGER},</if><if test="bname != null" >#{bname,jdbcType=VARCHAR},</if><if test="bauthor != null" >#{bauthor,jdbcType=VARCHAR},</if><if test="btime != null" >#{btime,jdbcType=TIMESTAMP},</if><if test="btype != null" >#{btype,jdbcType=INTEGER},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="org.entity.BookManage" >update bookmanage<set ><if test="bname != null" >bname = #{bname,jdbcType=VARCHAR},</if><if test="bauthor != null" >bauthor = #{bauthor,jdbcType=VARCHAR},</if><if test="btime != null" >btime = #{btime,jdbcType=TIMESTAMP},</if><if test="btype != null" >btype = #{btype,jdbcType=INTEGER},</if></set>where bid = #{bid,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="org.entity.BookManage" >update bookmanageset bname = #{bname,jdbcType=VARCHAR},bauthor = #{bauthor,jdbcType=VARCHAR},btime = #{btime,jdbcType=TIMESTAMP},btype = #{btype,jdbcType=INTEGER}where bid = #{bid,jdbcType=INTEGER}</update>
</mapper>

往期精彩

springmvc中引入静态太资源js文件的方法

2021-01-20

idea中报错……的解决方式!

2021-01-19

如何在idea中使用jstl标签库

2021-01-18

我去,终于解决了!

2021-01-17

3班的第一次模拟面试

2021-01-16

不能初始化泛型参数和数组

2021-01-15

点分享

点点赞

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDD理论学习系列(11)-- 工厂

1.引言 在针对大型的复杂领域进行建模时&#xff0c;聚合、实体和值对象之间的依赖关系可能会变得十分复杂。在某个对象中为了确保其依赖对象的有效实例被创建&#xff0c;需要深入了解对象实例化逻辑&#xff0c;我们可能需要加载其他相关对象&#xff0c;且可能为了保持其他…

ssl2647-线段树练习4【线段树】

正题 题意 一条长m线&#xff0c;有n条长度不同的线段&#xff0c;查询x到x1有多少条线 解题思路 标记直接覆盖颜色数&#xff0c;然后找到那个点&#xff0c;之后向上到根节点把所有叠加的线统计 代码 #include<cstdio> #include<cstring> using namespace s…

记得完成寒假作业~

今天&#xff0c;对于学生们来说&#xff0c;没有比这在开心的日子了&#xff0c;因为&#xff0c;他们放假了&#xff01;&#xff01;&#xff01;有的同学&#xff0c;周一来了就开始盼望着周五&#xff0c;每天都扳着手指头数还剩几天才能到周五&#xff0c;周一心里就想&a…

数据库的最简单实现

转载自 数据库的最简单实现 所有应用软件之中&#xff0c;数据库可能是最复杂的。MySQL的手册有3000多页&#xff0c;PostgreSQL的手册有2000多页&#xff0c;Oracle的手册更是比它们相加还要厚。 但是&#xff0c;自己写一个最简单的数据库&#xff0c;做起来并不难。Reddi…

Raft协议安全性保证

分布式系统中主要的问题就是如何保持节点状态的一致性&#xff0c;不论发生任何failure&#xff0c;只要集群中大部分的节点可以正常工作&#xff0c;则这些节点具有相同的状态&#xff0c;保持一致&#xff0c;在client看来相当于一台机器。 一致性问题本质就是replicated sta…

2021,春节联欢会

今天,3班和4班都组织了春节联欢会,每个节目都是有同学们精心准备的,非常非常的精彩。 上午,搬着电脑去上课的时候,发现黑板上已经被红红的彩带占上了,估计学生们这时候的心理就是,应该不能上课了吧。然后我就在“众目睽睽”下拆下来,将投影仪幕布放下来继续上课,哈哈哈…

网关过滤

内置网关过滤 自定义过滤

你,的寒假作业写多少了?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。一晃寒假已过10多天&#xff0c;亲爱的同学们&#xff0c;你的寒假作业写多少了&#xff1f;是一点都没动呢还是多少动了点了&#xff1f;昨天晚上在3班的群里发了几套课程&#xff0c;刚发就有几位同学…

MassTransitamp;amp;Sagas分布式服务开发ppt分享

saga&#xff0c;与分布式相关&#xff0c;最早被定义在Hector Garcia-Molina和Kenneth Salem的论文"Sagas"中。这篇论文提出了一个saga机制来作为分布式事务的替代品以解决长时间运行的分布式事务&#xff08;long-running process&#xff09;的问题。这篇论文认为…

全局过滤器

自定义全局过滤器

最长回文子串(Longest Palindromic Substring)

转载自 最长回文子串&#xff08;Longest Palindromic Substring&#xff09;——三种时间复杂度的解法 子串&#xff1a;小于等于原字符串长度由原字符串中任意个连续字符组成的子序列 回文&#xff1a;关于中间字符对称的文法&#xff0c;即“aba”(单核)、“cabbac”(双核)…

小白入门级的视频剪辑软件

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。前言昨天&#xff0c;给班级群里面分享了个视频剪辑软件——剪映PC端&#xff0c;并交代同学们&#xff0c;剪辑视频可以以它来入手&#xff0c;我大致的看了看&#xff0c;PC端的剪映功能基本上能满足…

DDD理论学习系列(12)-- 仓储

1. 引言 DDD中Repository这个单词&#xff0c;主要有两种翻译&#xff1a;资源库和仓储&#xff0c;本文取仓储之译。 说到仓储&#xff0c;我们肯定就想到了仓库&#xff0c;仓库一般用来存放货物&#xff0c;而仓库一般由仓库管理员来管理。当工厂生产了一批货物时&#xf…

Windows 通过 SecureCRT 8.x 上传文件到Linux服务器

转载自 Windows 通过 SecureCRT 8.x 上传文件到Linux服务器 1、SecureCRT 连接 Linux 服务器&#xff0c;这一步操作简单&#xff1a; 2、连接并登录成功后&#xff0c;直接在连接成功的页签上 右键 -> Connect SFTP Session 打开SFTP窗口&#xff1a; 3、在新的SFTP页签…

没有回家的等于没过年

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。今天是农历2021年正月初二&#xff0c;新的一年&#xff0c;祝大家牛年大吉&#xff0c;身体健康&#xff0c;万事如意&#xff01;今年由于各方面原因并未回家过年&#xff0c;感觉没回家等于没过年&a…

.NET Core引入性能分析引导优化

“性能分析引导优化&#xff08;Profile Guided Optimization&#xff0c;缩写PGO&#xff09;”是一项原生编译技术&#xff0c;可用于生成高度优化的代码。它通过一个两步编译过程实现优化——用第一步记录相关执行信息&#xff0c;然后第二步用那些信息构建一个改进过的二进…