美文网首页
Mybatis框架入门使用教程

Mybatis框架入门使用教程

作者: 0小水瓶0 | 来源:发表于2019-08-20 15:36 被阅读0次

    Mybatis框架是一种轻量级操作数据库的基本框架,其高度的封装只需要使用者将sql语句、传值与取值处理好就可以轻松的操作数据库。

    1.导入jar包

    该框架是一个轻量级的框架其只需要导入两个jar包。 jar包

    2.编写配置文件

    需要在scr文件夹里创建一个mybatis.cfg.xml文件,该文件主要是配置数据库的一些链接,账号和密码。在<mappers>标签里引用编写sql语句的XML文件。这样在程序加载的时候就可以读取到sql的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="myb">
    
    <environment id="myb">
    <transactionManager type="JDBC"></transactionManager>
    <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/testdemo?characterEncoding=utf8"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
    </dataSource>
    </environment>
    </environments>
    
    <mappers>
    <mapper resource="entity/sInfoMapper.xml"/>
    <mapper resource="entity/tInfoMapper.xml"/>
    </mappers>
    </configuration>
    

    3.编写sql XML文件

    在实体类的包里面创建编写sql的XML文件,在其中需要在<mapper>标签中指定需要操作增删改查的实体类的地址,和在里面编写sql语句。

    <?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="entity.sInfo">
    
    <insert id="sadd" parameterType="entity.sInfo">
    insert into sinfo(sname,sage,ssex) values(#{sname},#{sage},#{ssex})
    </insert>
    
    <delete id="sdelete" parameterType="Integer">
    DELETE FROM sinfo WHERE id=#{id}
    </delete>
    
    <update id="supdate" parameterType="entity.sInfo">
    UPDATE sinfo SET sage=#{sage},ssex=#{ssex} WHERE id=#{id}
    </update>
    
    <select id="sselectOne" parameterType="entity.sInfo" resultType="entity.sInfo">
    select * from sinfo where id=#{id}
    </select>
    
    <select id="sselectAll" parameterType="Integer"  resultType="entity.sInfo">
    select * from sinfo limit #{f},5
    </select>
    
    <select id="scount"   resultType="Integer">
    select count(1) from sinfo
    </select>
    
    </mapper>
    

    以添加为例,在<insert>标签里面给一个id取一个名(相当于方法名),parameterType参数可以指定传过来的参数类型,还有一个resultType参数是指定返回值的参数类型,将这些标签看成方法,形参和返回值就可以很轻松的理解。

    <insert id="sadd" parameterType="entity.sInfo">
    insert into sinfo(sname,sage,ssex) values(#{sname},#{sage},#{ssex})
    </insert>
    

    4.工具类

    该工具类是提供SqlSession类,该类提供一系列操作数据库的方法。

    package utils;
    
    import java.io.IOException;
    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 mybatisutil {
        public static SqlSession getsession(){
            SqlSession session=null;
            try {
                Reader r=Resources.getResourceAsReader("mybatis.cfg.xml");
                SqlSessionFactoryBuilder sfb=new SqlSessionFactoryBuilder();
                SqlSessionFactory sf=sfb.build(r);
                session = sf.openSession();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return session;
        }
    }
    

    5.dao层代码

    这里值的注意的就是session里面引入的地址和传递的数据类型。增删改都需要在后面提交事务,而查询并不需要这样操作。

    package dao.Impl;
    
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    
    import dao.sInfoDao;
    import entity.sInfo;
    import utils.mybatisutil;
    
    public class sInfoDaoImpl implements sInfoDao{
        SqlSession session=null;
        @Override
        public Integer sadd(sInfo s) {
            session=mybatisutil.getsession();
            Integer a=session.insert("entity.sInfo.sadd", s);
            session.commit();
            session.close();
            return a;
        }
    
        @Override
        public Integer sdelete(Integer id) {
            session=mybatisutil.getsession();
            Integer a=session.delete("entity.sInfo.sdelete", id);
            session.commit();
            session.close();
            return a;
        }
    
        @Override
        public Integer supdate(sInfo s) {
            session=mybatisutil.getsession();
            Integer a=session.update("entity.sInfo.supdate", s);
            session.commit();
            session.close();
            return a;
        }
    
        @Override
        public sInfo sselectOne(sInfo s) {
            session=mybatisutil.getsession();
            sInfo ss=session.selectOne("entity.sInfo.sselectOne", s);
            session.commit();
            session.close();
            return ss;
        }
    
        @Override
        public List<sInfo> sselectAll(Integer page) {
            
            int f=(page-1)*5;
            
            session=mybatisutil.getsession();
            
            List<sInfo> list=session.selectList("entity.sInfo.sselectAll",f);
            session.commit();
            session.close();
            return list;
        }
    
        @Override
        public Integer sCount() {
            
            session=mybatisutil.getsession();
            List list=session.selectList("entity.sInfo.scount");
            System.out.println("list="+list);
            session.commit();
            session.close();
            
            return (Integer)list.get(0);
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:Mybatis框架入门使用教程

          本文链接:https://www.haomeiwen.com/subject/uajpsctx.html