Mybatis快速入门

来源:互联网 发布:海尔收购三洋 知乎 编辑:程序博客网 时间:2024/06/06 03:47
MyBatis使用示例

下面是一个简单的MyBatis使用DEMO

整体代码大致如下:

POM依赖

需要引用两个jar包,一个是mybatis,另一个是mysql-connector-java,如果是maven工程的话,pom里如下添加依赖就可以了。

<dependencies>            <dependency>         <groupId>org.mybatis</groupId>         <artifactId>mybatis</artifactId>         <version>3.2.8</version>      </dependency>      <dependency>         <groupId>mysql</groupId>         <artifactId>mysql-connector-java</artifactId>         <version>5.0.8</version>      </dependency></dependencies>


数据准备

CREATETABLE `book1` ( `id` varchar(32) NOT NULL, `bookname` varchar(40) DEFAULT NULL, `price` int(11) DEFAULT NULL, PRIMARY KEY (`id`))

配置文件

     需要两个配置文件,一个是MyBatis的配置文件mybatis-config.xml,示例中是一个很简单配置,详细的配置网上有很多说明

<?xmlversionxmlversion="1.0"encoding="UTF-8"?>  <!DOCTYPEconfiguration       PUBLIC"-//mybatis.org//DTD Config 3.0//EN"       "http://mybatis.org/dtd/mybatis-3-config.dtd">  <configuration>       <environments default="development">          <environment id="development">              < transactionManager typetransactionManagertype="jdbc"/>              <dataSource type="POOLED">                 <property name="driver"value="com.mysql.jdbc.Driver"/>                 <property name="url"value="jdbc:mysql://localhost:3306/mybatis"/>                 <property name="username"value="root"/>                 <property name="password"value="root"/>              </dataSource>          </environment>       </environments>          <!--映射文件管理 -->      <mappers>           <mapper resource="com/hys/test/book/dao/bookMapper.xml"/>       </mappers>  </configuration>


  另一个是数据访问接口映射文件:示例中是bookMapper.xml

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">   <mapper namespace="com.hys.test.book.dao.BookMapper">   <!--这里namespace必须是UserMapper接口的路径” -->   <!--这里的id必须和UserMapper接口中的接口方法名相同 -->   <insert id="insertBook"parameterType="com.hys.test.book.entity.Book">       insert into book(id,bookname,price)values(#{id},#{bookname},#{price})   </insert>      <select id="getBook"resultType="com.hys.test.book.entity.Book" parameterType="String">       select * from book where id = #{id}   </select></mapper>

源代码

创建接口BookMapper 

package com.hys.test.book.dao;import com.hys.test.book.entity.Book;public interface BookMapper {      public void insertBook(Bookbook);     public Book getBook(Stringid);} 

实体类Book.java

package com.hys.test.book.entity;public class Book {   private String id;   private String bookname;   private int price;      public Book() {      //TODO Auto-generated constructor stub   }      public Book(String id, String bookname,int price) {      this.id = id;      this.bookname = bookname;      this.price = price;   }    public String getId() {      returnid;   }    public void setId(Stringid) {      this.id = id;   }    public String getBookname() {      return bookname;   }    public void setBookname(String bookname) {      this.bookname = bookname;   }    public int getPrice() {      return price;   }    public void setPrice(int price) {      this.price = price;   }    @Override   public String toString() {      return "Book [id=" +id +", bookname=" +bookname +", price=" +price             +"]";   }  }

测试

     通过MyBatis操作数据库用到的是一个叫SqlSession的类,这个类是通过SqlSessionFactory产生的,一般建议在全局维护一个SqlSessionFactory就可以了。

BookService.java

package com.hys.test.book.service;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.hys.test.book.dao.BookMapper;import com.hys.test.book.entity.Book; public class BookService {   private static SqlSessionFactorysqlSessionFactory;   private static SqlSessionsqlSession;    static {      String resource ="mybatis-config.xml";      Reader reader =null;      try {          reader = Resources.getResourceAsReader(resource);      }catch (IOExceptione) {          System.out.println(e.getMessage());      }      sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);      sqlSession =sqlSessionFactory.openSession();   }    public static void testAdd(){            try {          BookMapper bookMapper =sqlSession.getMapper(BookMapper.class);          Book book =new Book("003","java基础",89);          bookMapper.insertBook(book);          sqlSession.commit();      }finally {          sqlSession.close();      }   }    public static void getBook(){           try {          BookMapper bookMapper =sqlSession.getMapper(BookMapper.class);          Book book =bookMapper.getBook("001");          System.out.println(book.toString());      }finally {          sqlSession.close();      }   }}

BookAction.java

package com.hys.test.book.action;import com.hys.test.book.service.BookService;public class BookAction {    public static void main(String[]args) {      BookService.getBook();   }}

结果:



0 0
原创粉丝点击