MyBatis框架搭建

MyBatis简介:

    MyBatis是支持普通的Sql查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和java的pojosPlain Ordinary Java Objects,普通的Java对象)映射成数据库中的记录。

     

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。


MyBatis搭建:

一、导包

二、核心配置文件

      

       建在src目录下

      <1>.导入约束

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

      <2>.配置详解

   
<configuration> 
    <!-- 配置开发环境,可以配置多个,在具体用时再做切换 -->  <environments default="development"> 
        <environment id="development"> 
            <!-- 事务管理类型:JDBC、MANAGED -->  <transactionManager type="JDBC"></transactionManager> 
            <!-- 数据源类型:POOLED、UNPOOLED、JNDI -->  <dataSource type="POOLED"> 
                <property name="driver" value="com.mysql.jdbc.Driver"></pr operty> 
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis01?characterEncoding=utf-8"></property> 
                <property name="username" value="root"></property> 
                <property name="password" value=""></property> 
            </dataSource> 
        </environment> 
    </environments> 
    <!--告诉mybatis需要引入哪些Mapper映射文件-->  <mappers>

        <mapper resource="cn/hd/pojo/UserMapper.xml"></mapper> 
    </mappers> 
</configuration>

三、创建实体类

User

代码如下:

package cn.hd.pojo;

public class User {
   
private Integerid;
   
private Stringname;
   
private Stringsex;
   
private Stringaddress;
   
private Integerbalance;

   
public User(){
    }

   
public User(Integerid, String name, String sex, String address, Integer balance) {
       
this.id = id;
       
this.name = name;
       
this.sex = sex;
       
this.address = address;
       
this.balance = balance;
    }

   
public IntegergetId() {
       
returnid;
    }

   
publicvoid setId(Integer id) {
       
this.id = id;
    }

   
public StringgetName() {
       
returnname;
    }

   
publicvoid setName(String name) {
       
this.name = name;
    }

   
public StringgetSex() {
       
returnsex;
    }

   
publicvoid setSex(String sex) {
       
this.sex = sex;
    }

   
public StringgetAddress() {
       
returnaddress;
   }

   
publicvoid setAddress(String address) {
       
this.address = address;
    }

   
public IntegergetBalance() {
       
returnbalance;
    }

   
publicvoid setBalance(Integer balance) {
       
this.balance = balance;
    }

   
@Override
   
publicString toString() {
       
return"User{" +
               
"id=" + id+
               
", name='" + name + '\'' +
               
", sex='" + sex + '\'' +
               
", address='" + address + '\'' +
               
", balance=" + balance +
               
'}';
    }
}

四、映射文件

<1>.导入约束

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPEmapper

        PUBLIC"-//mybatis.org//DTDMapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper>

</mapper>

<2>.配置

<mapper namespace="test">


   
<select id="findUserById" parameterType="int"resultType="cn.hd.pojo.User" >
       
SELECT * FROM user WHEREid =  #{id}
    </select>

</mapper>

五、测试类

Demo:

public class Demo {
   
@Test
   
publicvoid fun() throws IOException{
        InputStream in = Resources.getResourceAsStream(
"sqlMapConfig.xml");
        SqlSessionFactory sessionFactory=
new SqlSessionFactoryBuilder().build(in);
        SqlSession session =sessionFactory.openSession();
        User user = session.selectOne(
"test.findUserById", 1);
        System.
out.println(user);

        session.close();
    }
}

test.findUserById   test:是映射文件中的namespace   findUserById :是 当前sql语句 id