3.1 自定义Mybatis框架的分析
3.1.1 涉及知识点介绍
本章我们将使用前面所学的基础知识来构建一个属于自己的持久层框架,将会涉及到的一些知识点:工厂模式(Factory工厂模式)、构造者模式(Builder模式)、代理模式,反射,自定义注解,注解的反射,xml解析,数据库元数据,元数据的反射等。
3.1.2 分析流程

3.2 前期准备
3.2.1 创建Maven工程
创建mybatis02的工程,工程信息如下:
1 2 3
| Groupid:com.itheima ArtifactId:mybatis02 Packing:jar
|
3.2.2 引入相关坐标
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
| <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.6</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies>
|
3.2.3 引入工具类到项目中
由于该部分代码过长,请转见,使用UTF-8编码浏览
3.2.4 编写SqlMapConfig.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="UTF-8" ?> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" ></property> <property name="url" value="jdbc:mysql:///eesy" ></property> <property name="username" value="root"></property> <property name="password" value="1234"></property> </dataSource> </environment> </environments> </configuration>
|
注意: 此处我们直接使用的是mybatis的配置文件,但是由于我们没有使用mybatis的jar包,所以要把配置文件的约束删掉否则会报错(如果电脑能接入互联网,不删也行)
3.2.5 编写读取配置文件类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public class Resources {
public static InputStream getResourceAsStream(String xmlPath) { return Resources.class.getClassLoader().getResourceAsStream(xmlPath); } }
|
3.2.6 编写Mapper类
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class Mapper { private String queryString; private String resultType; public String getQueryString() { return queryString; } public void setQueryString(String queryString) { this.queryString = queryString; } public String getResultType() { return resultType; } public void setResultType(String resultType) { this.resultType = resultType; } }
|
3.2.7 编写Configuration配置类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public class Configuration { private String username; private String password; private String url; private String driver; private Map<String,Mapper> mappers; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getDriver() { return driver; } public void setDriver(String driver) { this.driver = driver; } public Map<String, Mapper> getMappers() { return mappers; } public void setMappers(Map<String, Mapper> mappers) { this.mappers = mappers; } }
|
3.2.8 编写User实体类
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class User implements Serializable { private int id; private String username; private String sex; private Date birthday; private String address; @Override public String toString() { return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address=" + address + "]"; } }
|
本文标题:第三章 自定义Mybatis 第1节 自定义Mybatis框架
文章作者:foreverSFJ
发布时间:2019-09-08 17:52:51
最后更新:2019-09-08 17:52:51
原始链接:Notes/Java/Persistence/Mybatis/03_01 自定义Mybatis框架.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!