MyBatisGenerator代码生成.docx
- 文档编号:3583362
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:52
- 大小:41.11KB
MyBatisGenerator代码生成.docx
《MyBatisGenerator代码生成.docx》由会员分享,可在线阅读,更多相关《MyBatisGenerator代码生成.docx(52页珍藏版)》请在冰豆网上搜索。
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.
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 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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MyBatisGenerator 代码 生成
![提示](https://static.bdocx.com/images/bang_tan.gif)