Mybatis上路_05-使用命令行自动生成

http://my.oschina.net/vigiles/blog/125127


目录[-]

1.数据准备:

mysql5.5 。

1)建库:

?


1

2

CREATE DATABASE DB_MYBATIS CHAR SET UTF8;

USE DB_MYBATIS;

2)建表:

?


1

2

3

4

5

CREATE TABLE TB_GENERATOR(

    id INT PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(60) ,

    notes VARCHAR(200)

);

3)预设数据:

?


1

2

INSERT INTO TB_GENERATOR VALUES (1, "eminem1", "notes1");

INSERT INTO TB_GENERATOR VALUES (2, "eminem2", "notes2");

2.编写Generator执行配置文件:

generatorConfigation.xml 。

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE generatorConfiguration

  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

 

<generatorConfiguration>

    <!-- 数据库驱动包 -->

    <classPathEntry location="mysql-connector-java-5.1.22-bin.jar" />

 

    <!-- 环境配置 **************************************************

        id="自定义的配置名称"

        targetRuntime="MyBatis版本" -->

    <context id="MySqlTables" targetRuntime="MyBatis3" >

   

        <!-- 数据库  ===============================================

            driverClass="驱动"

            connectionURL="数据库url"

            userId="用户"

            password="密码" -->

        <jdbcConnection

            driverClass="com.mysql.jdbc.Driver"

            connectionURL="jdbc:mysql://127.0.0.1:3306/db_mybatis"

            userId="root"

            password="root">  

        </jdbcConnection>

        <!-- Java数据类型分离器,数据类型转换 =====================

            property 属性

                name="强迫双精度"

                value="不" -->

        <javaTypeResolver>

            <property name="forceBigDecimals" value="false" />

        </javaTypeResolver>

 

        <!-- Java模型生成器 =======================================

            targetPackage="生成文件的目标路径"

            targetProject="已存在的项目包"

                enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator

                trimString-验证字符串,true-是的 -->

        <javaModelGenerator

                targetPackage="test.model"

                targetProject="\cn\cvu">

            <property name="enableSubPackages" value="false" />

            <property name="trimStrings" value="true" />

        </javaModelGenerator>

 

        <!-- sql映射文件生成器 =======================================

            targetPackage="生成文件的目标路径"

            targetProject="已存在的项目包"

                enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator -->

        <sqlMapGenerator

                targetPackage="test.xml"

                targetProject="\cn\cvu">

            <property name="enableSubPackages" value="false" />

        </sqlMapGenerator>

        <!-- java委托对象DAO生成器,接口 =============================

            type=""

            targetPackage="生成文件的目标路径"

            targetProject="已存在的项目包"

                enableSubPackages-可以省略对应约束名,true-是的,可以省略tb_generator -->

        <javaClientGenerator

                type="XMLMAPPER"

                targetPackage="test.dao"

                targetProject="\cn\cvu">

            <property name="enableSubPackages" value="false" />

        </javaClientGenerator>

        <!-- 表单,已存在,根据此表生成其它文件 =======================

            tableName="已有的表单名称"

            domainObjetctName="对应生成的文件名前缀" -->

        <table tableName="tb_generator" domainObjectName="Eminem">

            <!-- useActualColumnNames-使用真实列名 ,

                 true-嗯。如果false,则由columnOverride节点控制  -->

            <property name="useActualColumnNames" value="true" />

            <!-- 标识列

                column="列名" sqlStatement="某种数据库语言" identity="作为主键" -->

            <generatedKey column="id" sqlStatement="MySql" identity="true" />

         

            <!-- 覆盖项,当上面的property name="useActualColumnNames" value="true"时。

                column="被覆盖值的列名" property="用来覆盖的对应的java类的属性" -->

            <columnOverride column="name" property="generName" />

        </table>

    </context>

</generatorConfiguration>

3.搭建执行环境:

1)创建项目包:

2)准备文件:

4.执行命令行语句:

        C:\> java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfigation.xml 

如果增加“ -overwrite ”参数会覆盖原有文件。事实上原有文件会被重命名。

5.查看生成的文件:

6.查看文件内容:

在MyEclipse中新建空web项目,将“cn”包放入“src”内。

1) cn/cvu/dao/EminemMapper.java :

(1)修改自动生成的包路径。如果没有注解类包,可以注释图中第4行代码。

(2)然后将图中两行代码中的注解删除。

2)cn/cvu/model/Eminem.java :

修改包路径。

3) cn/cvu/model/EminemExample.java :

修改包路径。

4)cn/cvu/xml/EminemMapper.xml :

修改映射文件路径:

7.测试,使用生成的文件查询:

1)导入MyBatis的jar包:

mybatis-3.2.2.jar  
                mybatis-generator-core-1.3.2.jar 
                mysql-connector-java-5.1.22-bin.jar 
                

2)创建MyBatis的xml配置文件:

上面我们注释掉了自动生成的注解代码,在src新建一个xml配置文件,mybatisConfigation.xml:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC" />

            <dataSource type="POOLED">

                <property name="driver" value="com.mysql.jdbc.Driver" />

                <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_mybatis" />

                <property name="username" value="root" />

                <property name="password" value="root" />

            </dataSource>

        </environment>

    </environments>

    <mappers>

        <!-- 引入MBG生成器创建的映射文件 -->

        <mapper resource="cn/cvu/test/xml/EminemMapper.xml" />

    </mappers>

</configuration>

3)Java测试代码:

创建测试类cn.cvu.test.dotest.TestGenerateWithXML :

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

package cn.cvu.test.dotest;

import java.io.Reader;

import java.util.List;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

import cn.cvu.test.dao.EminemMapper;

import cn.cvu.test.model.Eminem;

import cn.cvu.test.model.EminemExample;

import cn.cvu.test.model.EminemExample.Criteria;

 

public class TestGenerateWithXML {

 

    @Test

    public void testQuery() throws Exception {

        // 创建SQL会话:

        Reader reader = Resources.getResourceAsReader("mybatisConfigation.xml");

        SqlSession session = new SqlSessionFactoryBuilder().build(reader).openSession();

        // 创建查询实例:

        EminemExample eminemExample = new EminemExample();

        // 获取映射实体:

        EminemMapper mapper = session.getMapper(EminemMapper.class);

        // 利用实体通过实例查询全部条目

        List<Eminem> eminems = mapper.selectByExample(eminemExample);

        System.out.println("ID \t\t name \t\t notes \n");

        for (Eminem eminem : eminems) {

                System.out.println(eminem.getId()+

                                "\t\t"+eminem.getGenerName()+

                                "\t\t"+eminem.getNotes());

        }

        session.close();

    }

}

   

- end

时间: 2024-08-10 23:17:29

Mybatis上路_05-使用命令行自动生成的相关文章

android 用命令行打包生成 apk

android 用 ant 进行 build. android sdk 下面的 tools/ant 下面的 build.xml 就是 build 的整个过程. 其中的 build 参数可在 ant.properties 文件中进行 override.也可以自己定制 build 的脚本. 用 ant build 非常简单 1)安装 ant 并加入到系统 path 变量中 2)为项目生成 build.xml android update project -p . 3)生成 debug 版本 ant

QrenCode : 命令行下生成二维码图片

对于二维码大家应该并不陌生,英文名为 2-dimensional bar code 或 QR Code,是一种用图形记载信息的技术,最常见的是应用在手机应用上.用户通过手机摄像头扫描二维码或输入二维码下面的号码.关键字即可实现快速手机上网,快速便捷地浏览网页.下载图文.音乐.视频等等. 在 Ubuntu / Linux 上,有一个名为 QrenCode 的命令行工具可以很容易帮我们生成二维码. # 安装: sudo apt-get install qrencode # 使用: qrencode

mybatis自定义代码生成器(Generator)——自动生成model&amp;dao代码

花了两天的时间研究了下mybatis的generator大体了解了其生成原理以及实现过程.感觉generator做的非常不错,给开发者也留足了空间.看完之后在generator的基础上实现了自定义的生成器.代码start..... 建立了一个maven工程(common)项目结构: ----------------------------------------------------------------pom.xml-------------------------------------

在GNU/Linux下使用命令行自动挂载与卸载USB磁盘

在命令行环境下如果每次都是靠手动敲入mount与umount命令来挂载与卸载USB磁盘是件很麻烦的事情.尤其是mount命令的参数非常多.比如,磁盘的分区类型(vfat.ntfs等),挂载的目录节点,以何种用户和组的身份来挂载(uid与gid),挂载后文件与文件夹的权限(umask)等等.于是,自己编写了两个脚本程序来分别实现自动挂载与卸载USB磁盘.现在分别介绍如下. 首先是加载USB磁盘的 auto_mount.sh 脚本,使用它可以自动提取与设置mount命令所需的参数,执行mount命令

QrenCode 命令行下生成二维码

在 Ubuntu / Linux 上,有一个名为 QrenCode 的命令行工具可以很容易帮我们生成二维码图片. 除此之外,你还可以使用更多其它参数,详细用法请 man qrencode. qrencode -o ~/Desktop/google.png -s 6 'http://www.tiaoma100.com.com' 输出结果 # 使用: 对于二维码大家应该并不陌生,英文名为 2-dimensional bar code 或  QR Code,是一种用图形记载信息的技术,最常见的是应用在

MyBatis在不适用MyBatis-generator代码自动生成时的map文件的书写规范(总结)

首先我们参考一段通过MyBatis-generator的自动生成的代码 <?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 namespa

QrenCode : linux命令行下生成二维码图片

原文链接:http://wowubuntu.com/qrencode.html # 作者:riku/ / 本文采用CC BY-NC-SA 2.5协议授权,转载请注明本文链接. 对于二维码大家应该并不陌生,英文名为 2-dimensional bar code 或  QR Code,是一种用图形记载信息的技术,最常见的是应用在手机应用上.用户通过手机摄像头扫描二维码或输入二维码下面的号码.关键字即可实现快速手机上网,快速便捷地浏览网页.下载图文.音乐.视频等等. 在 Ubuntu / Linux

mysql命令行自动补全

今天想着实现mysql命令行的自动补全功能,随便搜索就出现了使用 mysql自带的 --auto--rehash参数 mysql -uroot -p --auto--rehash 但是mariadb好像不买账,继续搜索,出现了下面的工具 mycli官网 嗯,还有mysql相关的命令 mysqladmin,一起学起来吧! 20 MySQL (Mysqladmin) Commands for Database Administration in Linux 4 Useful Commandline

使用expect实现自动交互,shell命令行自动输入

背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的.如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况. 安装expect 安装依赖:yum install tcl -y 安装expect:Centos系统yum install expect -y或Ubuntu系统ap