Guest User

Untitled

a guest
Feb 7th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.44 KB | None | 0 0
  1. Exception in thread "main" java.lang.ExceptionInInitializerError
  2. at com.sivalabs.mybatisdemo.service.BlogService.insertBlog(BlogService.java:13)
  3. at com.sivalabs.mybatisdemo.main.Main.main(Main.java:22)
  4. Caused by: org.apache.ibatis.exceptions.PersistenceException:
  5. ### Error building SqlSession.
  6. ### The error may exist in ./BlogMapper.xml
  7. ### The error occurred while processing mapper_resultMap[BlogResult]
  8. ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 65; Document root element "mapper", must match DOCTYPE root "null".
  9. at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
  10. at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:54)
  11. at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:38)
  12. at com.sivalabs.mybatisdemo.service.MyBatisUtil.<clinit>(MyBatisUtil.java:22)
  13. ... 2 more
  14.  
  15. package com.sivalabs.mybatisdemo.main;
  16.  
  17. import com.sivalabs.mybatisdemo.domain.Blog;
  18. import com.sivalabs.mybatisdemo.service.BlogService;
  19. import java.util.List;
  20.  
  21. public class Main {
  22.  
  23. public static void main(String[] args) {
  24.  
  25. Blog blog = new Blog();
  26. blog.setBlogId(1);
  27. blog.setBlogName("HELL0");
  28. blog.setCreatedOn(null);
  29. BlogService blogService = new BlogService();
  30. blogService.insertBlog(blog);
  31. List<Blog> blogs = blogService.getAllBlogs();
  32. for (Blog bs : blogs)
  33. System.out.println(bs);
  34. }
  35. }
  36.  
  37. package com.sivalabs.mybatisdemo.mappers;
  38.  
  39. import java.util.List;
  40. import com.sivalabs.mybatisdemo.domain.Blog;
  41.  
  42. public interface BlogMapper {
  43. public void insertBlog(Blog blog);
  44. public List<Blog> getAllBlogs();
  45. }
  46.  
  47. package com.sivalabs.mybatisdemo.service;
  48.  
  49. import com.sivalabs.mybatisdemo.domain.Blog;
  50. import java.util.List;
  51. import org.apache.ibatis.session.SqlSession;
  52. import com.sivalabs.mybatisdemo.mappers.BlogMapper;
  53.  
  54. public class BlogService {
  55.  
  56. public void insertBlog(Blog blog) {
  57. SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
  58. try{
  59. BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);
  60. blogMapper.insertBlog(blog);
  61. sqlSession.commit();
  62. }
  63. finally{
  64. sqlSession.close();
  65. }
  66. }
  67.  
  68. public List<Blog> getAllBlogs() {
  69. SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
  70. try{
  71. BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);
  72. return blogMapper.getAllBlogs();
  73. }finally{
  74. sqlSession.close();
  75. }
  76. }
  77. }
  78.  
  79. package com.sivalabs.mybatisdemo.service;
  80.  
  81. import java.io.IOException;
  82. import java.io.Reader;
  83. import org.apache.ibatis.io.Resources;
  84. import org.apache.ibatis.session.SqlSessionFactory;
  85. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  86.  
  87. public class MyBatisUtil {
  88. private static SqlSessionFactory factory;
  89. private MyBatisUtil() {
  90. }
  91.  
  92. static {
  93. Reader reader = null;
  94. try {
  95. reader = Resources.getResourceAsReader("mybatis-config.xml");
  96. } catch (IOException e) {
  97. throw new RuntimeException(e.getMessage());
  98. }
  99. factory = new SqlSessionFactoryBuilder().build(reader);
  100. }
  101.  
  102. public static SqlSessionFactory getSqlSessionFactory() {
  103. return factory;
  104. }
  105. }
  106.  
  107. <?xml version="1.0" encoding="UTF-8"?>
  108. <mapper namespace="com.sivalabs.mybatisdemo.mappers.BlogMapper">
  109. <resultMap type="Blog" id="BlogResult">
  110. <id property="blogId" column="blog_id"/>
  111. <result property="blogName" column="BLOG_NAME"/>
  112. <result property="createdOn" column="CREATED_ON"/>
  113. </resultMap>
  114.  
  115. <insert id="insertBlog" parameterType="Blog">
  116. INSERT INTO blog (blog_id, BLOG_NAME, CREATED_ON)
  117. VALUES(#{blogId}, #{blogName}, #{createdOn})
  118. </insert>
  119.  
  120. <select id="getAllBlogs" resultMap="BlogResult">
  121. SELECT
  122. b.blog_id, b.blog_name, b.created_on
  123. FROM blog b
  124. </select>
  125. </mapper>
  126.  
  127. <?xml version="1.0" encoding="UTF-8" ?>
  128. <!DOCTYPE configuration
  129. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  130. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  131. <configuration>
  132. <typeAliases>
  133. <typeAlias type="com.sivalabs.mybatisdemo.domain.User" alias="User"/>
  134. <typeAlias type="com.sivalabs.mybatisdemo.domain.Blog" alias="Blog"/>
  135. </typeAliases>
  136. <environments default="development">
  137. <environment id="development">
  138. <transactionManager type="JDBC"/>
  139. <dataSource type="POOLED">
  140. <property name="driver" value="org.postgresql.Driver"/>
  141. <property name="url" value="jdbc.url=jdbc:postgresql://localhost:5432/mybatis"/>
  142. <property name="username" value="username"/>
  143. <property name="password" value="p@ssw0rd"/>
  144. </dataSource>
  145. </environment>
  146. </environments>
  147. <mappers>
  148. <mapper resource="./UserMapper.xml"/>
  149. <mapper resource="./BlogMapper.xml"/>
  150. </mappers>
  151. </configuration>
  152.  
  153. <?xml version="1.0" encoding="UTF-8"?>
  154. <!DOCTYPE mapper
  155. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  156. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  157. <mapper namespace="com.sivalabs.mybatisdemo.mappers.BlogMapper">
Add Comment
Please, Sign In to add comment