mybatis案例步伐

打印 上一主题 下一主题

主题 879|帖子 879|积分 2637

前置工作


  • 导包(mysql-connector-java、mybatis)
  • 实体类
Mapper层

1.接口
  1. public interface BookMapper {
  2.     public Book getBookById(Integer bookID);
  3. }
复制代码
2.创建Mapper的映射文件
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ylzl.mapper.BookMapper">
  6.     <select id="getBookById" resultType="com.ylzl.pojo.Book">
  7.         select * from books where bookID=#{bookID}
  8.     </select>
  9. </mapper>
复制代码
Service层

可以不利用Service层,利用其他方式包含以下核心代码也可以。
核心代码
  1. static {
  2.   String resource = "mybatis-config.xml";
  3.   try {
  4.     InputStream inputStream = Resources.getResourceAsStream(resource);
  5.   } catch (IOException e) {
  6.     e.printStackTrace();
  7.   }
  8. }
  9. //1.读取xml配置文件,创建SqlSessionFactory对象
  10. SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
  11. //2.通过创建SqlSessionFactory对象获取SqlSession对象
  12. SqlSession sqlSession = sqlSessionFactory.openSession();
  13. //3.通过SqlSession对象获取代理对象mapper,传入接口class对象
  14. BookMapper mapper=sqlSession.getMapper(BookMapper.class);
  15. //4.通过mapper调用接口对应方法
  16. mapper.getBookById(bookID);
复制代码
以下为利用Service层实现的方式
1.接口
  1. public interface BookService {
  2.     Book getBookById(Integer bookID);
  3. }
复制代码
2.接口实现类(重点关注)
  1. public class BookServiceImpl implements BookService{
  2.     static InputStream inputStream = null;
  3.     static {
  4.         String resource = "mybatis-config.xml";
  5.         try {
  6.             inputStream = Resources.getResourceAsStream(resource);
  7.         } catch (IOException e) {
  8.             e.printStackTrace();
  9.         }
  10.     }
  11.     //1.读取xml配置文件,创建SqlSessionFactory对象
  12.     private final SqlSessionFactory sqlSessionFactory
  13.             = new SqlSessionFactoryBuilder().build(inputStream);
  14.     @Override
  15.     public Book getBookById(Integer bookID) {
  16.         //2.通过创建SqlSessionFactory对象获取SqlSession对象
  17.         SqlSession sqlSession = sqlSessionFactory.openSession();
  18.         //3.通过SqlSession对象获取代理对象mapper,传入接口class对象,
  19.         BookMapper mapper = sqlSession.getMapper(BookMapper.class);
  20.         //4.通过mapper调用接口对应方法
  21.         return  mapper.getBookById(bookID);
  22.     }
  23. }
复制代码
Mybatis设置文件mybatis-config.xml(重点关注)
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3.         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6.     <environments default="development">
  7.         <environment id="development">
  8.             <transactionManager type="JDBC"/>
  9.             
  10.             <dataSource type="POOLED">
  11.                 <property name="driver" value="com.mysql.jdbc.Driver"/>
  12.                 <property name="url" value="jdbc:mysql://localhost:3306/ssmbuild"/>
  13.                 <property name="username" value="root"/>
  14.                 <property name="password" value="root"/>
  15.             </dataSource>
  16.         </environment>
  17.     </environments>
  18.    
  19.     <mappers>
  20.         <mapper resource="com/ylzl/mapper/BookMapper.xml"/>
  21.     </mappers>
  22. </configuration>
复制代码
测试
  1. BookService bookServicelmpl = new BookServiceImpl();
  2. System.out.println(bookServicelmpl.getBookById(2));
复制代码
碰到的问题

1.BookMapper.xml不放在resources下,加过滤
  1.   <build>
  2.         <resources>
  3.             <resource>
  4.                 <directory>src/main/java</directory>
  5.                 <includes>
  6.                     <include>**/*.properties</include>
  7.                     <include>**/*.xml</include>
  8.                 </includes>
  9.                 <filtering>true</filtering>
  10.             </resource>
  11.             <resource>
  12.                 <directory>src/main/resources</directory>
  13.                 <includes>
  14.                     <include>**/*.properties</include>
  15.                     <include>**/*.xml</include>
  16.                 </includes>
  17.                 <filtering>true</filtering>
  18.             </resource>
  19.         </resources>
  20.     </build>
复制代码
2.解决xml编码问题:1 字节的 UTF-8 序列的字节 1 无效:https://www.cnblogs.com/thetree/p/12991403.html
转载请注明原文链接:https://www.cnblogs.com/yulingzhiling/p/18099119若标题中有“转载”字样,则本文版权归原作者全部。若无转载字样,本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保存此段声明,且在文章页面显着位置给出原文毗连,否则保存追究法律责任的权利.
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表