MyBatis快速入门_1

来源:互联网 发布:linux域控 编辑:程序博客网 时间:2024/05/02 04:43

一、MyBatis的前身是iBatis,本是Apache的一个开源的项目

  MyBatis是一个支持普通SQL查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。



二、MyBatis是一个数据持久层(ORM)框架,把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。

三、MyBatis小巧,简单易学
        1)基于SQL语法,简单易学
        2)能了解底层组装过程
        3)SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度

        4)程序调试方便


四、MyBatis是开发的步骤 

   2.1、准备开发环境

      1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:

         

     2、添加相应的jar包

  【mybatis】

         mybatis-3.2.2.jar

  【Oracle驱动包】
    ojdbc6.jar

    3、数据表数据如下:

     

      

2.2、使用MyBatis查询表中的数据

  1、在src下添加Mybatis的配置文件mybatis-conf.xml,jdbc.properites,log4j.properties 

        如图所示

      

    jdbc.properties

driver=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521:HLXusername=scottpassword=hsx

mybatis-conf.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 引入 jdbc.properties 文件 --><properties resource="jdbc.properties" /><environments default="development"><environment id="development"><!--配置事务管理,采用JDBC的事务管理 --><transactionManager type="JDBC" /><!-- 配置数据库连接信息 --><!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 --><dataSource type="POOLED"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><!-- 将mapper文件加入到配置文件中 --></configuration>

 2、定义表所对应的实体类,

package com.hlx.pojo;/** * POJO plain old java objects ( 普通的Java对象) * @author Administrator * */public class Userinfos {//ctrl+shift+Y lower//ctrl+shift+X upperprivate int id;                         private String uname;                           private String  upass;public int getId() {return id;}public void setId(int id) {this.id = id;}public Userinfos() {super();}public Userinfos(int id, String uname, String upass) {super();this.id = id;this.uname = uname;this.upass = upass;}public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpass() {return upass;}public void setUpass(String upass) {this.upass = upass;}@Overridepublic String toString() {return "Userinfos [id=" + id + ", uname=" + uname + ", upass=" + upass+ "]";}}

3、定义操作userinfos表的sql映射文件UserinfosMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的  例如namespace="com.hlx.dao.UserinfosMapper"就是com.hlx.dao(包名)+UserinfosMapper(UserinfosMapper.xml文件去除后缀) --><mapper namespace="com.hlx.dao.UserinfosMapper">  <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUserinfo,id属性值必须是唯一的,不能够重复                 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型     resultType="com.hlx.pojo.Userinfos"就表示将查询结果封装成一个User类的对象返回     User类就是users表所对应的实体类    -->     <!--                    根据id查询得到一个userinfos对象     --> <select id="getUserinfo" parameterType="int" resultType="com.hlx.pojo.Userinfos">   select * from userinfos where id=#{id} </select></mapper>

4、在mybatis-conf.xml文件中注册UserinfosMapper.xml文件

<!-- 将mapper文件加入到配置文件中 --><mappers>     <mapper resource="com/hlx/dao/UserinfosMapper.xml"/>   </mappers>

5、测试代码:执行定义的select语句

package com.hlx.test;import java.io.InputStream;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.apache.log4j.Logger;import org.junit.Test;import com.hlx.pojo.Userinfos;/** * 测试类 * @author Administrator * */public class UserinfoTest {    //日志对象private Logger logger = Logger.getLogger(UserinfoTest.class);@Testpublic void findById() {// mybatis的配置文件String resources = "mybatis-config.xml";SqlSession session = null;try {// 1.使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)InputStream is = Resources.getResourceAsStream(resources);// 2 创建sqlSessionFactory对象(完成对配置文件的读取)SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);// 3 创建sqlSessionsession = factory.openSession();// 4 调用mapper文件来进行数据操作(调用之前,mapper文件需要先加入mybatis-config.xml配置文件中)/** * 映射sql的标识字符串, com.hlx.dao.UserinfosMapper是userinfosMapper. * xml文件中mapper标签的namespace属性的值, * getUserinfo是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL */String statementString = "com.hlx.dao.UserinfosMapper.getUserinfo";// 执行查询返回一个唯一user对象的sqlUserinfos userinfos = session.selectOne(statementString,3);logger.debug("查询数据为:");System.out.println(userinfos);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();} finally {session.close(); // 关闭}}}
执行结果如下:




0 0
原创粉丝点击