Skip to content

0xcaffebabe/orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

orm

2019-2-1

根据个人对ORM框架理解的一个简单实现

2019-2-6

###第一个应用:

定义接口:

public interface EntityRepository {

    @Select(value = "SELECT * FROM entity",entity = Entity.class)
    List<Entity> selectAll();

    @Update(value = "UPDATE entity SET name = 'java' WHERE name = ?")
    int updateByName(String name);

    @Delete("DELETE FROM entity WHERE name = ?")
    int deleteByName(String name);

    @Insert(value = "INSERT INTO entity(name) VALUES(?)",entity = Entity.class)
    int insert(String name);
}

使用:

public class MyRepositoryFactoryTest {

    @Test
    public void getRepositoryAgent() {
        // 设置数据源
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        dataSource.setUrl("jdbc:mysql:///orm?serverTimezone=Hongkong");

        // 创建仓库工厂
        MyRepositoryFactory factory = new MyRepositoryFactory(dataSource);
        // 通过工厂获取仓库代理类
        EntityRepository repository = factory.getRepositoryAgent(EntityRepository.class);
        
        assertEquals(1,repository.insert("kkk"));
        assertEquals(2,repository.selectAll().size());
    }
}

About

一个简单ORM框架实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages