1. 程式人生 > >用idea建maven專案搭建mybatis框架

用idea建maven專案搭建mybatis框架

    第一步: 先建立一個maven專案,詳細步驟就不多說了     

    第二步: 在搭建好的maven專案中開啟pom.xml,載入所需的jar包,配置如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>com.test</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>com.test Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <!-- mybatis核心包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.3.0</version>
    </dependency>
    <!-- mysql驅動包 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.29</version>
    </dependency>
    <!-- junit測試包 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- 日誌檔案管理包 -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.12</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.12</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>com.test</finalName>
  </build>
</project>
  第三步:在main資料夾下新建一個Java資料夾,在其下再建一個pojo資料夾,新建一個User實體類(如下):

jjz

User實體類:

public class User {
    private  int bookid;
    private String bookname;

    public int getBookid() {
        return bookid;
    }

    public void setBookid(int bookid) {
        this.bookid = bookid;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
}

第四步:配置mybatis的xml檔案和對映檔案(這裡mybatis的核心配置檔案命名為:mybatis-config.xml    SQL對映檔案:User.xml)

       1.在resource資料夾下新建mybatis核心配置檔案(mybatis-config.xml)然後再新建一個mapper資料夾,用來存放對映檔案(User.xml

 

mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>


    <!-- 環境配置 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!-- 資料庫連線相關配置 ,這裡動態獲取config.properties檔案中的內容-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/bookdb" />
                <property name="username" value="root" />
                <property name="password" value="" />
            </dataSource>
        </environment>
    </environments>

    
    <mappers>
        <mapper resource="mapper/User.xml"/>
    </mappers>

</configuration>
User.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com">

    <select id="findById" resultType="pojo.User" parameterType="int">
        select * from book where bookid=#{bookid}
    </select>

    


</mapper>
第五步:在測試類中進行單測:
  public static void main(String[] args) {
       //  按ID查詢書名
       String resource="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sqlMapper.openSession();
        User user=session.selectOne("findById",20);
        System.out.println(user.getBookname());
        session.close();

       


    }