MyBatis研习录(14)——MyBatis逆向工程
发布日期:2021-06-30 11:11:11
浏览次数:2
分类:技术文章
本文共 5119 字,大约阅读时间需要 17 分钟。
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
概述
MyBatis逆向工程,简称MBG。它是一个专门为MyBatis框架使用者定制的代码生成器,它可以快速的根据表生成对应的映射文件xxxMapper.xml,接口xxxMapper.java,以及JavaBean类对象。
接下来,我们以示例的形式学习MBG的使用。
数据准备
DROP DATABASE IF EXISTS mybatisDatabase;CREATE DATABASE mybatisDatabase;use mybatisDatabase;CREATE TABLE user( id INT PRIMARY KEY auto_increment, name VARCHAR(50), password VARCHAR(50), gender VARCHAR(10));CREATE TABLE student( id INT PRIMARY KEY auto_increment, name VARCHAR(50), address VARCHAR(50), gender VARCHAR(10));INSERT INTO user(name,password,gender) VALUES("lucy","123456","female");INSERT INTO user(name,password,gender) VALUES("momo","234567","female");INSERT INTO user(name,password,gender) VALUES("xixi","345678","female");INSERT INTO user(name,password,gender) VALUES("pepe","456123","female");INSERT INTO student(name,address,gender) VALUES("tome","BeiJing","female");INSERT INTO student(name,address,gender) VALUES("dodo","ChengDu","female");INSERT INTO student(name,address,gender) VALUES("mbmb","ZhangYe","female");INSERT INTO student(name,address,gender) VALUES("zxzx","BaoDing","female");SELECT * FROM user;SELECT * FROM student;
搭建开发环境
创建普通的Java工程,结构如下:
在lib中一共存在四个jar包:- log4j-1.2.17.jar
- mybatis-3.4.1.jar
- mybatis-generator-core-1.3.2.jar
- mysql-connector-java-5.1.7-bin.jar
其中,mybatis-generator-core-1.3.2.jar专门用于MyBatis逆向工程
log4j.properties
# Global logging configurationlog4j.rootLogger=DEBUG, stdout# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
generatorConfig.xml
在工程Mybatis012根目录下创建generatorConfig.xml,图示如下:
其内容如下:Generator
在cn.com.generator包下建立Generator,其内容如下:
package cn.com.generator;import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class Generator { public static void main(String[] args) throws Exception { Listwarnings = new ArrayList (); boolean overwrite = true; //读取generatorConfig.xml配置文件 File configFile = new File("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings); myBatisGenerator.generate(null); }}
自动生成代码
运行Generator后再刷新整个Java工程即可见自动生成的代码,图示如下:
mybatis-config.xml
在自动生成代码后再创建并配置mybatis-config.xml文件,其内容如下:
MybatisTest
创建MybatisTest测试该逆向工程,其代码如下:
package cn.com.test;import java.io.InputStream;import java.util.Iterator;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import cn.com.mapper.StudentMapper;import cn.com.mapper.UserMapper;import cn.com.pojo.Student;import cn.com.pojo.User;/** * 本文作者:谷哥的小弟 * 博客地址:http://blog.csdn.net/lfdfhl */public class MybatisTest { static SqlSessionFactory sqlSessionFactory = null; public static SqlSessionFactory getSqlSessionFactory() { try { if (sqlSessionFactory == null) { InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); } return sqlSessionFactory; } catch (Exception e) { // TODO: handle exception } finally { } return null; } @Test public void testUser() { //获取SqlSession SqlSession sqlSession=getSqlSessionFactory().openSession(); //利用SqlSession得到Mapper UserMapper userMapper = sqlSession.getMapper(UserMapper.class); ListuserList = userMapper.selectAll(); Iterator iterator = userList.iterator(); while(iterator.hasNext()) { User user = iterator.next(); System.out.println(user.getName()+" , "+user.getGender()); } //关闭SqlSession sqlSession.close(); } @Test public void testStudent() { //获取SqlSession SqlSession sqlSession=getSqlSessionFactory().openSession(); //利用SqlSession得到Mapper StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class); Student student = studentMapper.selectByPrimaryKey(1); System.out.println(student.getName()+" , "+student.getGender()); //关闭SqlSession sqlSession.close(); }}
测试结果如下:
附图
在此,附上整个项目的结构图,图示如下:
转载地址:https://it9527.blog.csdn.net/article/details/103284357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月23日 01时25分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
jQuery常用技巧
2019-04-30
遍历控件
2019-04-30
uncodeToString
2019-04-30
C语言32关键字分类详解
2019-04-30
oracle查询表
2019-04-30
用背景实现表格有线条(背景,然后通过间隔实现)
2019-04-30
根据传入字符串获取自定义hash值
2019-04-30
字节数-说明
2019-04-30
vc转换bcb lib
2019-04-30
unicode转换
2019-04-30
IE6布局
2019-04-30
SQL Server表分区
2019-04-30
Ms sqlserver2008 R2大数据表的分区实现
2019-04-30
性能分析—查询运行慢的原因(SQLServer2008宝典)
2019-04-30
sqlserver2008 死锁解决方法及性能优化方法
2019-04-30
sqlserver动态分区方案例子
2019-04-30
获取浏览器详细信息
2019-04-30
JS获取浏览器类型和版本信息
2019-04-30
canvas2image.js
2019-04-30
base64
2019-04-30