Search in sources :

Example 1 with Blog

use of org.apache.ibatis.domain.blog.Blog in project mybatis-3 by mybatis.

the class BindingTest method shouldSelectListOfBlogsUsingXMLConfig.

@Test
void shouldSelectListOfBlogsUsingXMLConfig() {
    try (SqlSession session = sqlSessionFactory.openSession()) {
        BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
        List<Blog> blogs = mapper.selectBlogsFromXML();
        assertEquals(2, blogs.size());
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) Blog(org.apache.ibatis.domain.blog.Blog) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 2 with Blog

use of org.apache.ibatis.domain.blog.Blog in project mybatis-3 by mybatis.

the class BindingTest method shouldExecuteBoundSelectBlogUsingConstructorWithResultMapAndProperties.

@Test
void shouldExecuteBoundSelectBlogUsingConstructorWithResultMapAndProperties() {
    try (SqlSession session = sqlSessionFactory.openSession()) {
        BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
        Blog blog = mapper.selectBlogUsingConstructorWithResultMapAndProperties(1);
        assertEquals(1, blog.getId());
        assertEquals("Jim Business", blog.getTitle());
        assertNotNull(blog.getAuthor(), "author should not be null");
        Author author = blog.getAuthor();
        assertEquals(101, author.getId());
        assertEquals("jim@ibatis.apache.org", author.getEmail());
        assertEquals("jim", author.getUsername());
        assertEquals(Section.NEWS, author.getFavouriteSection());
        List<Post> posts = blog.getPosts();
        assertNotNull(posts, "posts should not be empty");
        assertEquals(2, posts.size());
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) DraftPost(org.apache.ibatis.domain.blog.DraftPost) Post(org.apache.ibatis.domain.blog.Post) Author(org.apache.ibatis.domain.blog.Author) Blog(org.apache.ibatis.domain.blog.Blog) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 3 with Blog

use of org.apache.ibatis.domain.blog.Blog in project mybatis-3 by mybatis.

the class BindingTest method shouldGetBlogsWithAuthorsAndPosts.

@Test
void shouldGetBlogsWithAuthorsAndPosts() {
    try (SqlSession session = sqlSessionFactory.openSession()) {
        BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
        List<Blog> blogs = mapper.selectBlogsWithAutorAndPosts();
        assertEquals(2, blogs.size());
        assertTrue(blogs.get(0) instanceof Proxy);
        assertEquals(101, blogs.get(0).getAuthor().getId());
        assertEquals(1, blogs.get(0).getPosts().size());
        assertEquals(1, blogs.get(0).getPosts().get(0).getId());
        assertTrue(blogs.get(1) instanceof Proxy);
        assertEquals(102, blogs.get(1).getAuthor().getId());
        assertEquals(1, blogs.get(1).getPosts().size());
        assertEquals(2, blogs.get(1).getPosts().get(0).getId());
    }
}
Also used : Proxy(javassist.util.proxy.Proxy) SqlSession(org.apache.ibatis.session.SqlSession) Blog(org.apache.ibatis.domain.blog.Blog) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 4 with Blog

use of org.apache.ibatis.domain.blog.Blog in project mybatis-3 by mybatis.

the class BindingTest method shouldGetBlogsWithAuthorsAndPostsEagerly.

@Test
void shouldGetBlogsWithAuthorsAndPostsEagerly() {
    try (SqlSession session = sqlSessionFactory.openSession()) {
        BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
        List<Blog> blogs = mapper.selectBlogsWithAutorAndPostsEagerly();
        assertEquals(2, blogs.size());
        assertFalse(blogs.get(0) instanceof Factory);
        assertEquals(101, blogs.get(0).getAuthor().getId());
        assertEquals(1, blogs.get(0).getPosts().size());
        assertEquals(1, blogs.get(0).getPosts().get(0).getId());
        assertFalse(blogs.get(1) instanceof Factory);
        assertEquals(102, blogs.get(1).getAuthor().getId());
        assertEquals(1, blogs.get(1).getPosts().size());
        assertEquals(2, blogs.get(1).getPosts().get(0).getId());
    }
}
Also used : SqlSession(org.apache.ibatis.session.SqlSession) JdbcTransactionFactory(org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory) SqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory) TransactionFactory(org.apache.ibatis.transaction.TransactionFactory) Factory(net.sf.cglib.proxy.Factory) Blog(org.apache.ibatis.domain.blog.Blog) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 5 with Blog

use of org.apache.ibatis.domain.blog.Blog in project mybatis-3 by mybatis.

the class ExecutorTestHelper method prepareComplexSelectBlogMappedStatement.

static MappedStatement prepareComplexSelectBlogMappedStatement(final Configuration config) {
    final TypeHandlerRegistry registry = config.getTypeHandlerRegistry();
    final SqlSource sqlSource = new StaticSqlSource(config, "SELECT b.id, b.author_id, b.title, a.username, a.password, a.email, a.bio" + " FROM blog b" + " INNER JOIN author a ON b.author_id = a.id" + " WHERE b.id = ?");
    final ParameterMap parameterMap = new ParameterMap.Builder(config, "defaultParameterMap", int.class, new ArrayList<ParameterMapping>() {

        {
            add(new ParameterMapping.Builder(config, "id", registry.getTypeHandler(int.class)).build());
        }
    }).build();
    final ResultMap resultMap = new ResultMap.Builder(config, "defaultResultMap", Blog.class, new ArrayList<ResultMapping>() {

        {
            add(new ResultMapping.Builder(config, "id", "id", registry.getTypeHandler(int.class)).flags(new ArrayList<ResultFlag>() {

                {
                    add(ResultFlag.ID);
                }
            }).build());
            add(new ResultMapping.Builder(config, "title", "title", registry.getTypeHandler(String.class)).build());
            add(new ResultMapping.Builder(config, "author.id", "author_id", registry.getTypeHandler(int.class)).build());
            add(new ResultMapping.Builder(config, "author.username", "username", registry.getTypeHandler(String.class)).build());
            add(new ResultMapping.Builder(config, "author.password", "password", registry.getTypeHandler(String.class)).build());
            add(new ResultMapping.Builder(config, "author.email", "email", registry.getTypeHandler(String.class)).build());
            add(new ResultMapping.Builder(config, "author.bio", "bio", registry.getTypeHandler(String.class)).build());
            add(new ResultMapping.Builder(config, "posts", "id", registry.getTypeHandler(int.class)).javaType(List.class).nestedQueryId("selectPostsForBlog").build());
        }
    }).build();
    return new MappedStatement.Builder(config, "selectBlogById", sqlSource, SqlCommandType.SELECT).parameterMap(parameterMap).resultMaps(new ArrayList<ResultMap>() {

        {
            add(resultMap);
        }
    }).build();
}
Also used : TypeHandlerRegistry(org.apache.ibatis.type.TypeHandlerRegistry) DynamicSqlSource(org.apache.ibatis.scripting.xmltags.DynamicSqlSource) StaticSqlSource(org.apache.ibatis.builder.StaticSqlSource) SqlSource(org.apache.ibatis.mapping.SqlSource) ResultMap(org.apache.ibatis.mapping.ResultMap) ArrayList(java.util.ArrayList) ParameterMap(org.apache.ibatis.mapping.ParameterMap) ResultMapping(org.apache.ibatis.mapping.ResultMapping) ArrayList(java.util.ArrayList) List(java.util.List) MappedStatement(org.apache.ibatis.mapping.MappedStatement) ResultFlag(org.apache.ibatis.mapping.ResultFlag) StaticSqlSource(org.apache.ibatis.builder.StaticSqlSource) Blog(org.apache.ibatis.domain.blog.Blog)

Aggregations

Blog (org.apache.ibatis.domain.blog.Blog)30 BaseDataTest (org.apache.ibatis.BaseDataTest)26 Test (org.junit.jupiter.api.Test)26 SqlSession (org.apache.ibatis.session.SqlSession)21 Post (org.apache.ibatis.domain.blog.Post)9 DraftPost (org.apache.ibatis.domain.blog.DraftPost)7 Author (org.apache.ibatis.domain.blog.Author)5 MappedStatement (org.apache.ibatis.mapping.MappedStatement)5 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 Map (java.util.Map)4 StaticSqlSource (org.apache.ibatis.builder.StaticSqlSource)4 Comment (org.apache.ibatis.domain.blog.Comment)4 Tag (org.apache.ibatis.domain.blog.Tag)4 ParameterMap (org.apache.ibatis.mapping.ParameterMap)4 ResultFlag (org.apache.ibatis.mapping.ResultFlag)4 ResultMap (org.apache.ibatis.mapping.ResultMap)4 ResultMapping (org.apache.ibatis.mapping.ResultMapping)4 SqlSource (org.apache.ibatis.mapping.SqlSource)4 DynamicSqlSource (org.apache.ibatis.scripting.xmltags.DynamicSqlSource)4