Mybatis基础

Mybatis是简化和实现了 Java 数据持久化层(persistence layer)的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。要使用这个框架首先就要导入mybatis的架包,而mybatis底层是封装JDBC的方法,所以还需要导入Jdbc的架包,当导入了架包,就可以开始mybaits的配置了。
首先是一个mybatis的配置文件,类型为下
注意:名字必须为mybatis-config.xml,位置默认在src下

<?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> 
        <!--  
        <typeAliases> 
            <typeAlias alias="Student" type="pojo.Student" /> 
              </typeAliases> -->
              <typeAliases>
              <!-- 这个元素表示你要使用的类的别名,有两种方法表示,一种就是上面alias=****,type=     前者表示别名,后者表示类在工程中的位置。第二种就是直接pack name =包名,直接为包内所有类起好别名,默认是去掉路径的类名 -->
                <!--   <package name="pojo"/>--> 
                  <package name="many2many"/>
              </typeAliases>
        <environments default="development"> 
                <environment id="development"> 
                  <transaction Manager type="JDBC" />  指定使用的底层实现转化工具,这里使用的是JDBC
                   <dataSource type="POOLED">
                    <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> 
                    <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:XE" /> 
                    <property name="username" value="test" /> 
                    <property name="password" value="test" /> 
                  </dataSource> 
                </environment> 
         </environments> 
        <mappers> 
                <!-- 这个表示映射的配置文件位置 -->
                <mapper resource="com/briup/pojo/StudentMapper.xml" /> 
        </mappers> 
</configuration> 

然后就是建立一个pojo类,我这里是建立一个Student类,添加属性和get,set方法。然后建立一个接口,接口是来映射pojo类,并通过配置映射接口的xml来表示两者的关系,mybatis会自动帮我们封装。

public interface StudentMapper {
/*
 * 描述對象的映射关系
 * 增加學生
 */
    public void addStudent(Student s);
    public List<Student> selectStudentAll();
    public Student selectIDStudent(Integer i);
    public void deleteStudent(Integer i);
    public void updataStudent(Student s);
}

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="mapper.StudentMapper">
   <!-- id值为接口中表示增加学生的方法名 -->
   <insert id="addStudent" parameterType="Student">
        <!-- 写一个类似sql的语句,实际是表达映射关系-->
        INSERT INTO JD1709_STUDENT
        VALUES(#{id},#{name},#{birthday},#{phone})
   </insert>
   <resultMap type="Student" id="StudentResult">
                    <id property="id" column="id" />
                    <result property="name" column="name" />
                    <result property="birthday" column="birthday" />

   </resultMap>
   <select id="selectStudentAll" resultMap="StudentResult">
      SELECT * FROM JD1709_STUDENT
   </select>
   <select id="selectIDStudent" parameterType="Integer" resultType="Student">
        SELECT ID,NAME,BIRTHDAY,PHONE FROM JD1709_STUDENT
        WHERE ID=#{id}
   </select>
   <delete id="deleteStudent" parameterType="Integer">
        DELETE FROM JD1709_STUDENT
        WHERE ID=#{id}
   </delete>
   <update id="updataStudent" parameterType="Student">
        UPDATE JD1709_STUDENT
        SET NAME=#{name},BIRTHDAY=#{birthday}
        WHERE ID=#{id}
   </update>
</mapper>

注意,如果对象的属性与数据库中表的名字相同,mybatis会自动完成映射,如果不同,需要使用resultMap元素手动映射

完成配置文件和pojo类和映射接口的建立,就可以使用这些东西完成我们想要的插入和删除等任务,流程如下:

/1.读取配置文件的输入流
             InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
             //2.拿到工厂,通过建造者模式拿到
             SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
             //3.拿到SqlSession
              session = factory.openSession();
             //4.通过接口拿到子类对象
              mapper= session.getMapper(StudentMapper.class);

然后就可以使用mapper来直接完成我们的插入指令

Student s = new Student(1,"Tom",new Timestamp(System.currentTimeMillis()),new PhoneNum("153-83467865"));

             mapper.addStudent(s);

这样就简单的完成了mybatis的使用,记得在使用的最后完成资源的释放,commot和close操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值