首页 > 代码库 > mybatis入门

mybatis入门

1.1.  什么是 MyBatis ?

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除

了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML

或注解用于配置和原始映射,将接口和 Java的 POJOs(Plan Old Java Objects,普通的 Java

对象)映射成数据库中的记录。

1.2.  入门案例

每一个 MyBatis 的应 用程序 都以一 个 SqlSessionFactory 对象的 实例为 核心。

SqlSessionFactory 对 象 的 实 例 可 以 通 过SqlSessionFactoryBuilder 对象 来 获 得 。

SqlSessionFactoryBuilder 对象可以从 XML 配置文件,或从Configuration 类的习惯准备的实

例中构建 SqlSessionFactory 对象。

1.2.1.  Mysql数据库中新建表

#数据库脚本

USE mysql

#创建表

CREATE TABLE users

(       

         userId    INTEGER           AUTO_INCREMENT                  PRIMARY KEY,

         userName        VARCHAR(20)  NOT NULL,

         userAge            INTEGER           NOT NULL

 

)

#加入测试数据

INSERT INTO users(userName,userAge) VALUES(‘张三‘,22);

INSERT INTO users(userName,userAge)  VALUES(‘李四‘,33);

INSERT INTO users(userName,userAge)  VALUES(‘王五‘,44);

 

SELECT * FROM users

1.2.2.  新建java工程,引入jar包

mysql-connector-java-5.1.7-bin.jar

mybatis-3.2.7.jar

工程目录

技术分享

1.2.3.  新建实体类users.java

package com.morris.mybatis.entity;

 

public class Users {

 

    private IntegeruserId;

 

    private StringuserName;

 

    private IntegeruserAge;

 

    public Integer getUserId() {

       returnuserId;

    }

 

    public void setUserId(Integer userId) {

       this.userId =userId;

    }

 

    public String getUserName() {

       returnuserName;

    }

 

    public void setUserName(String userName) {

       this.userName =userName;

    }

 

    public Integer getUserAge() {

       returnuserAge;

    }

 

    public void setUserAge(Integer userAge) {

       this.userAge =userAge;

    }

 

    public Users(IntegeruserId, String userName, IntegeruserAge) {

       super();

       this.userId =userId;

       this.userName =userName;

       this.userAge =userAge;

    }

 

    public Users() {

       super();

       // TODO Auto-generated constructor stub

    }

 

    @Override

    public String toString() {

       return"Users [userId=" + userId + ", userName=" + userName

              + ", userAge=" +userAge + "]";

    }

 

}

 

1.2.4.  在src新建配置文件configration.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEconfiguration PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

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

<configuration>

 

<!-- 配置mybatis的数据库连接 -->

    <environmentsdefault="development">

        <environmentid="development">

        <transactionManagertype="JDBC"/>

            <dataSourcetype="POOLED">

            <propertyname="driver"value="com.mysql.jdbc.Driver"/>

            <propertyname="url"value="jdbc:mysql://127.0.0.1:3306/mysql"/>

            <propertyname="username"value="root"/>

            <propertyname="password"value="root"/>

            </dataSource>

        </environment>

    </environments>

   

    <!-- 引入映射文件 -->

    <mappers>

        <mapperresource="com/morris/mybatis/entity/UsersMapper.xml"/>

    </mappers>

</configuration>

1.2.5.  在与实体相同目录下新建映射文件UsersMapper.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEmapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

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

 

<mappernamespace="com.morris.mybatis.entity.Users">

 

    <selectid="selectUserByID"parameterType="java.lang.Integer"resultType="com.morris.mybatis.entity.Users">

        select * from users where userId = #{id}

    </select>

</mapper>

1.2.6.  测试

package com.morris.mybatis.entity;

 

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;

 

public class Test {

 

    public static void main(String[] args) throws Exception {

 

       Reader reader = Resources.getResourceAsReader("configuration.xml");

       SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder()

              .build(reader);

 

       SqlSession session = sqlSessionFactory.openSession();

 

       String sql = "com.morris.mybatis.entity.Users.selectUserByID";

 

       Users user = session.selectOne(sql, 1);

      

      

       System.out.println(user);

 

    }

 

}

1.2.7.  结果

Users[userId=1, userName=张三, userAge=22]

mybatis入门