目录
创建数据库配置文件dbconfig.properties写入以下内容
ORM
Object Relational Mapping 对象关系映射
作用
我们可以把数据库里面一行的数据,通过反射映射到java里面一个实体
好处
方便对数据库进行操作
一个简单的ORM框架开发
开发环境
工具:IDEA
JDK:1.8
MySQL:8.0.13
项目类型:Maven
项目大致结构如下图
实现具体说明
首先在pom.xml添加依赖包
<!--连接数据库驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
创建数据库和表
#测试用
#创建一个数据库
create database test;
#创建一张表
create table student(
id int auto_increment primary key,
name varchar(5) not null,
gender bit default 0,
age tinyint unsigned not null
)
创建一个实体类Student
package org.Entity;
/**
* 学生实体类
*/
public class Student {
private int id; //学生编号
private String name; //学生姓名
private boolean gender; //学生性别
private int age; //学性年龄
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", gender=" + gender +
", age=" + age +
'}';
}
}
创建一个反射工具类
package org.util;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* 反射工具类
*/
public class EntityReflectUtil {
/**
*获取一个具类所有属性及属性对应的set方法
* @param c 反射类对象
* @param <T> 要反射的具体类
* @return 具体类的所有属性及属性对应的set方法
*/
public static <T> Map<String, Method> getEntitySetMethod(Class<T> c) {
StringBuilder builder = new StringBuilder();
Map<String, Method> map = new HashMap();
for(Method m : c.getMethods()) {
if (builder.length() >0) builder.delete(0, builder.length());
builder.append(m.getName());
if(!builder.toString().startsWith("set")) continue;
map.put(builder.delete(0, 3).toString().substring(0, 1).toLowerCase()
+ builder.delete(0, 1).toString(), m);
}
return map;
}
}
创建一个数据库类型枚举类
package org.jdbc;
/**
*数据库类型枚举
*/
public enum DBType {
MYSQL, SQL_SERVER
}
创建一个操作数据库配置文件的标准接口
package org.jdbc;
/**
* 获取数据库链接配置文件标准接口
*/
public interface DBConfig {
/**
* 获取驱动包
* @return
*/
String getDriver();
/**
* 获取数据库链接字符串
* @return
*/
String getUrl();
/**
* 获取链接数据库用户名
* @return
*/
String getUserName();
/**
* 获取链接数据库的密码
* @return
*/
S