mybatis入门教程

来源:互联网 发布:网页美工设计实训 编辑:程序博客网 时间:2024/05/16 13:03
java框架MyBatis入门实例教程

1.mybatis简介
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除
了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML
或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java
对象)映射成数据库中的记录。
MyBatis是一个开源的ORM框架,本文以MyEclipse和MySQL数据库为开发环境来介绍一个简单的入门实例。

2.案例程序代码

a.需要准备的jar文件有:mybatis-3.1.1.jar,mysql-connector-java-5.1.2-beta-bin.jar 

b.创建一个简单的测试用的数据库和添加测试数据,本例中所使用到的数据库创建语句如下:
        CREATE TABLE user  
(  
  id int(11) NOT NULL AUTO_INCREMENT,  
  name varchar(20) NOT NULL,  
  password varchar(20) NOT NULL,  
  PRIMARY KEY (id)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

添加测试数据: 

INSERT INTO user VALUES ('1', 'admin', 'admin');  

c.在MyEclIpse中创建一个Java Project,添加上面两个jar文件到Project的Build Path。在src下创建一个包model,并在model下创建一个类User,内容如下: 

package model;  

public class User {  
    private int id;  
    private String name;  
    private String password;  
    public User(){  

    }  
    public User(int id,String name){  
        this.id=id;  
        this.name=name;  
    }  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public String getPassword() {  
        return password;  
    }  
    public void setPassword(String password) {  
        this.password = password;  
    }  
    public String toString(){  
         return "User [id = "+ id +" , name = "+ name +"]" ;  
    }  
}  

d.在Project的src目录下创建两个文件Configuration.xml和SqlMap.xml,文件内容: 
Configuration.xml数据库名和用户名以及密码请根据你的实际环境作相应的修改) 

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration PUBLIC  
    "-mybatis.orgDTD Config 3.0EN"  
    "http:mybatis.orgdtdmybatis-3-config.dtd">  
<configuration>  
    <environments default="development">   
        <environment id="development">   
            <transactionManager type="JDBC">   
            <dataSource type="POOLED">   
                <property name="driver" value="com.mysql.jdbc.Driver">   
                <property name="url" value="jdbc:mysql:localhost:3306test">   
                <property name="username" value="root">   
                <property name="password" value="123456">   
            <dataSource>   
        <environment>   
    <environments>  
    <mappers>  
        <mapper resource="SqlMap.xml">  
    <mappers>  
<configuration>  


SqlMap.xml: 


<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-ibatis.apache.orgDTD Mapper 3.0  
EN" "http:ibatis.apache.orgdtdibatis-3-mapper.dtd">  
<mapper namespace="org.mapper">  
    <select id="selectUser" parameterType="int" resultType="model.User">  
       select * from user where id = #{id}  
    <select>  
    <insert id="insertUser" parameterType="model.User">  
        insert into user (id,name,password) values (#{id},#{name},#{password})  
    <insert>  
    <update id="updateUser" parameterType="model.User">  
        update user set name=#{name},password=#{password} where id=#{id}  
    <update>  
    <delete id="deleteUser" parameterType="int">  
        delete from user where id=#{id}  
    <delete>  
<mapper>  


e.创建一个test包,并在test包下创建一个类MyBatisTest,内容如下:

package test;  

import java.io.IOException;  
import java.io.Reader;  

import model.User;  

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 MyBatisTest {  
    public static void main(String[] args) throws IOException {  
        String resource="Configuration.xml";  
        Reader reader=Resources.getResourceAsReader(resource);  
        SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(reader);  
        SqlSession session=ssf.openSession();  
        try {  
            User u=(User) session.selectOne("selectUser", "1");  
            System.out.println(u);  
            插入(下面使用**注释的部分)  
            * 
            u.setId(2); 
            session.insert("org.mapper.insertUser",u); 
            session.commit(); 
            *  
            更新(下面使用**注释的部分)  
            * 
            u.setPassword("654321"); 
            session.update("org.mapper.updateUser",u); 
            session.commit(); 
            *  
            删除(下面使用**注释的部分)  
            * 
            session.delete("org.mapper.deleteUser", 2); 
            session.commit(); 
            *  
        } catch (Exception e) {  
            e.printStackTrace();  
        }finally{  
            session.close();  
        }     
    }  


f.以上的例子将增改删注释起来了,读者可以自行修改注释部分来调试增改删功能。 
至此,我们已经可以使用MyBatis对数据库进行增删改查了。
0 0
原创粉丝点击