MyBatisGenerator代码生成.docx

上传人:b****4 文档编号:3583362 上传时间:2022-11-24 格式:DOCX 页数:52 大小:41.11KB
下载 相关 举报
MyBatisGenerator代码生成.docx_第1页
第1页 / 共52页
MyBatisGenerator代码生成.docx_第2页
第2页 / 共52页
MyBatisGenerator代码生成.docx_第3页
第3页 / 共52页
MyBatisGenerator代码生成.docx_第4页
第4页 / 共52页
MyBatisGenerator代码生成.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

MyBatisGenerator代码生成.docx

《MyBatisGenerator代码生成.docx》由会员分享,可在线阅读,更多相关《MyBatisGenerator代码生成.docx(52页珍藏版)》请在冰豆网上搜索。

MyBatisGenerator代码生成.docx

MyBatisGenerator代码生成

使用MybatisGenerator自动生成Mybatis相关代码

本文将简要介绍怎样利用MybatisGenerator自动生成Mybatis的相关代码:

一、构建一个环境:

1.首先创建一个表:

 

Sql代码

1.CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR

(1), birth DATE, death DATE);  

 

2.然后注入数据

Sql代码

1.insert into pet values('Fluffy', 'Harold', 'cat', 'f', '1993-02-04', null);  

2.insert into pet values('Claws', 'Gwen', 'cat', 'm', '1994-03-17', null);  

3.insert into pet values('Buffy', 'Harold', 'dog', 'f', '1989-05-13', null);  

4.insert into pet values('Fang', 'Benny', 'dog', 'm', '1990-08-27', null);  

5.insert into pet values('Bowser', 'Diane', 'dog', 'm', '1979-08-31', '1995-07-29');  

6.insert into pet values('Chirpy', 'Gwen', 'bird', 'f', '1998-09-11', null);  

7.insert into pet values('Whistler', 'Gwen', 'bird', null, '1997-12-09', null);  

8.insert into pet values('Slim', 'Benny', 'snake', 'm', '1996-04-29', null);  

 

注:

这里的sql例子来自

3.在Mybatis主页上下载Mybatismybatis-generator-core[本文使用的是1.3.0版本]。

当然运行mybatis-generator生成的代码还需要下载mybatis的jar包[本例使用的是3.0.2版本],和相关数据库的jdbc[本文中使用的是MySql的jdbc]。

 

二、运行mybatis-generator

1.要运行generator,需要给generator提供一个配置文件,指定其生成的数据库的相关信息。

以下是一个示例:

Xml代码

1.

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

>  

2.

DOCTYPE generatorConfiguration  

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

4.  "http:

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

5.  

6.  

7.      

8.  

9.      

10.  

11.          

12.              

13.          

14.  

15.        

16.            connectionURL="jdbc:

mysql:

//localhost/test" userId="qgd" password="123456">  

17.          

18.  

19.          

20.              

21.          

22.  

23.        

24.            targetProject="../src/main/java">  

25.              

26.              

27.          

28.  

29.        

30.            targetProject="../src/main/java">  

31.              

32.          

33.  

34.        

35.            targetPackage="test.dao" targetProject="../src/main/java">  

36.              

37.          

38.  

39.          

40.          

41.  

42.      

43.  

 

这个配置文件提供了mybatis-generator所需要的参数信息:

 *其中classPathEntry是引用的jdbc的类路径,这里将jdbcjar和generator的jar包放在一起了;

 *commentGenerator是用来除去时间信息的,这在配合类似subversion的代码管理工具时使用很有效,因为可以减少没有必要的注释迁入;

 *jdbcConnection是指定的jdbc的连接信息;

 *javaTypeResolver式类型转换的信息,这里并没有用到;

 *javaModelGenerator是模型的生成信息,这里将指定这些Javamodel类的生成路径;

 *sqlMapGenerator是mybatis的sqlMapperXML文件的生成信息,包括生成路径等;

 *javaClientGenerator是应用接口的生成信息;

 *table是用户指定的被生成相关信息的表,它必须在指定的jdbc连接中已经被建立。

2.mybatis-generator有多种运行方式,最简单的就是命令行的方式,只需要指定相应的配置文件的路径即可:

Java代码

1.java -jar mybatis-generator-core-1.3.0.jar -configfile ../src/main/resource/config.xml -overwrite  

 

运行后生成的代码包括模型类test.model.Pet和test.model.PetExample,test.dao.PetMapper接口以及其相对应的xml映射文件,在这里就不在赘述了。

三、使用mybatis-generator生成的代码

1.现在我们要利用这些生成的代码,首先我们需要一个关于所有映射的配置文件。

需要我们手写如下:

【不知道为什么generator没有选择自动生成这个文件,毕竟这些信息generator都可以得到】

Xml代码

1.

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

>  

2.

DOCTYPE configuration  

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

4.    "http:

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

5.  

6.      

7.          

8.              

9.              

10.                  

11.                

mysql:

//localhost/test" />  

12.                  

13.                  

14.              

15.          

16.      

17.      

18.          

19.      

20.  

 

2.另外还要使用然后我们还需要一个Main示例方法来调用这些已生成的代码:

Java代码

1.package test;  

2.  

3.import java.io.Reader;  

4.import java.util.List;  

5.  

6.import org.apache.ibatis.io.Resources;  

7.import org.apache.ibatis.session.SqlSession;  

8.import org.apache.ibatis.session.SqlSessionFactory;  

9.import org.apache.ibatis.session.SqlSessionFactoryBuilder;  

10.  

11.import test.dao.PetMapper;  

12.import test.model.Pet;  

13.import test.model.PetExample;  

14.  

15.public class Test {  

16.  

17.    public static void main(String[] args) throws Exception {  

18.        String resource = "MapperConfig.xml";  

19.        Reader reader = Resources.getResourceAsReader(resource);  

20.        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);  

21.        SqlSession sqlSession = sqlMapper.openSession();  

22.  

23.        PetExample pet = new PetExample();  

24.        pet.or().andDeathIsNotNull();  

25.        try {  

26.            PetMapper mapper = sqlSession.getMapper(PetMapper.class);  

27.            List allRecords = mapper.selectByExample(pet);  

28.            for (Pet s :

 allRecords)  

29.                System.out.println(s);  

30.        } finally {  

31.            sqlSession.close();  

32.        }  

33.    }  

34.}  

 

这样就可以打印出相应的查询结果信息了。

四、小结

该示例的完整的Eclipse工程见附件mybatis-generator-usage.zip,其中已经包含了示例需要使用的jar包。

本文中只是用到了mybatis-generator的一部分功能,mybatis-generator生成代码的方式还包括ant或Maven脚本,或者直接使用javaAPI生成;另外通过修改配置文件,generator还可以指定表的生成细节,并可以添加插件。

其功能文档在generator的分发包的doc文件夹下有更详细的介绍。

这里使用的表示没有主键的表,针对有一个主键或多个主键的表,mybatis-generator的生成的内容也有所不同,感兴趣的读者可以自行试验一下。

∙mybatis-generator-usage.zip(1.6MB)

一、MyBatis简介与配置MyBatis+Spring+MySql

1.1MyBatis简介

     MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。

MyBatis摒除了大部分的JDBC代码、手工设置参数和结果集重获。

MyBatis只使用简单的XML和注解来配置和映射基本数据类型、Map接口和POJO到数据库记录。

相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,Mybatis是一种“半自动化”的ORM实现。

需要使用的Jar包:

mybatis-3.0.2.jar(mybatis核心包)。

mybatis-spring-1.0.0.jar(与Spring结合包)。

下载地址:

http:

//ibatis.apache.org/tools/ibator

 

1.2MyBatis+Spring+MySql简单配置

1.2.1搭建Spring环境

1,建立maven的web项目;

2,加入Spring框架、配置文件;

3,在pom.xml中加入所需要的jar包(spring框架的、mybatis、mybatis-spring、junit等);

4,更改web.xml和spring的配置文件;

5,添加一个jsp页面和对应的Controller;

6,测试。

可参照:

1.2.2建立MySql数据库

建立一个学生选课管理数据库。

表:

学生表、班级表、教师表、课程表、学生选课表。

逻辑关系:

每个学生有一个班级;每个班级对应一个班主任教师;每个教师只能当一个班的班主任;

使用下面的sql进行建数据库,先建立学生表,插入数据(2条以上)。

更多sql请下载项目源文件,在resource/sql中。

Sql代码

1./* 建立数据库 */  

2.CREATE DATABASE STUDENT_MANAGER;  

3.USE STUDENT_MANAGER;  

4.  

5./***** 建立student表 *****/  

6.CREATE TABLE STUDENT_TBL  

7.(  

8.   STUDENT_ID         VARCHAR(255) PRIMARY KEY,  

9.   STUDENT_NAME       VARCHAR(10) NOT NULL,  

10.   STUDENT_SEX        VARCHAR(10),  

11.   STUDENT_BIRTHDAY   DATE,  

12.   CLASS_ID           VARCHAR(255)  

13.);  

14.  

15./*插入学生数据*/  

16.INSERT INTO STUDENT_TBL (STUDENT_ID,  

17.                         STUDENT_NAME,  

18.                         STUDENT_SEX,  

19.                         STUDENT_BIRTHDAY,  

20.                         CLASS_ID)  

21.  VALUES   (123456,  

22.            '某某某',  

23.            '女',  

24.            '1980-08-01',  

25.            121546  

26.            )  

 

创建连接MySql使用的配置文件mysql.properties。

Mysql.properties代码

1.jdbc.driverClassName=com.mysql.jdbc.Driver  

2.jdbc.url=jdbc:

mysql:

//localhost:

3306/student_manager?

user=root&password=limingnihao&useUnicode=true&characterEncoding=UTF-8  

 

 

1.2.3搭建MyBatis环境

顺序随便,现在的顺序是因为可以尽量的少的修改写好的文件。

1.2.3.1创建实体类:

StudentEntity

Java代码

1.public class StudentEntity implements Serializable {  

2.  

3.    private static final long serialVersionUID = 3096154202413606831L;  

4.    private ClassEntity classEntity;  

5.    private Date studentBirthday;  

6.    private String studentID;  

7.    private String studentName;  

8.    private String studentSex;  

9.      

10.    public ClassEntity getClassEntity() {  

11.        return classEntity;  

12.    }  

13.  

14.    public Date getStudentBirthday() {  

15.        return studentBirthday;  

16.    }  

17.  

18.    public String getStudentID() {  

19.        return studentID;  

20.    }  

21.  

22.    public String getStudentName() {  

23.        return studentName;  

24.    }  

25.  

26.    public String getStudentSex() {  

27.        return studentSex;  

28.    }  

29.  

30.    public void setClassEntity(ClassEntity classEntity) {  

31.        this.classEntity = classEntity;  

32.    }  

33.  

34.    public void setStudentBirthday(Date studentBirthday) {  

35.        this.studentBirthday = studentBirthday;  

36.    }  

37.  

38.    public void setStudentID(String studentID) {  

39.        this.studentID = studentID;  

40.    }  

41.  

42.    public void setStudentName(String studentName) {  

43. 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1