MyBatis框架学习

原理:

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

上代码    首先导包:

MyBatis框架学习

主要导入依赖包和mybatis-3.5.1.jar;

然后就是写全局配置文件        SqlMapConfig.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>
<!-- 配置mybatis的环境信息 -->
<environments default="development">
    <environment id="development">
        <!-- 配置JDBC事务控制,由mybatis进行管理 -->
        <transactionManager type="JDBC"></transactionManager>
        <!-- 配置数据源,采用dbcp连接池      mybatis自带的  -->
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/fimldb?serverTimezone=GMT%2B8&amp;useSSL=false"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </dataSource>
    </environment>
</environments>

<--  映射文件路径 -->
<mappers>
<mapper resource="userinfo.xml"/>
</mappers>
</configuration>

----注意这里写url的时候xml语法是不允许写&  符号的  需要转义    ---自己去百度;

 

映射文件   ----userinfo.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="test">

<select id="FindUserId" parameterType="int" resultType="com.film.bean.emp">
    select * from emp where eid = #{eid};
</select>


<select id="all" resultType="com.film.bean.emp">
select * from emp
</select>
<insert id="add" parameterType="com.film.bean.emp">
insert into emp(ename,esex,egw) values(#{ename},#{esex},#{egw});
</insert>
<delete id="drop" parameterType="int">
delete from emp where eid =#{eid};
</delete>
</mapper>
 

bean类----

package com.film.bean;

public class emp {
    private int eid;
    private String ename;
    private int esex;
    private String egw;
    
    //这里写构造函数是为了方便设置参数
    public emp(int eid, String ename, int esex, String egw) {
        this.eid = eid;
        this.ename = ename;
        this.esex = esex;
        this.egw = egw;
    }
    public int getEid() {
        return eid;
    }
    public void setEid(int eid) {
        this.eid = eid;
    }
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public int getEsex() {
        return esex;
    }
    public void setEsex(int esex) {
        this.esex = esex;
    }
    public String getEgw() {
        return egw;
    }
    public void setEgw(String egw) {
        this.egw = egw;
    }
    @Override
    public String toString() {
        return "emp [eid=" + eid + ", ename=" + ename + ", esex=" + esex + ", egw=" + egw + "]";
    }
    

}

 

测试类:

package com.film.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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 org.junit.Test;

import com.film.bean.emp;
import com.sun.org.apache.bcel.internal.generic.NEW;

public class test {
    public static void main(String[] args) throws Exception {
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);
        SqlSession session =ssf.openSession();
        emp emp=session.selectOne("FindUserId", 1);
        System.out.println(emp);        
        //session.insert("add",new emp(1, "付", 20, "大哥"));
        session.delete("drop",4);
        session.commit();
        List<emp> arr=session.selectList("all");
        System.out.println(arr);
        session.close();
    }

}