• myBatis初学经验----(1)


    Java常用的三种编写模式 Spring,SpringMVC,myBatis。

    myBatis(原名:iBatis):

      开源的ORM(持久层)框架,之前为apahce旗下顶级开源项目,后转到google,变为myBatis.目前代码库:http//github.com/mybatis/mybatis-3/releases

    myBatis 主要让软件工程师的精力放在sql上,通过myBatis提供的映射方式,可以自由的将数据映射为javaBean对象。

    myBatis配置和使用:

    1. 引入jar包
    <dependency>
    
             <groupId>org.mybatis</groupId>
    
             <artifactId>mybatis</artifactId>
    
             <version>3.3.1</version>
    
          </dependency>
    
          <dependency>
    
             <groupId>mysql</groupId>
    
             <artifactId>mysql-connector-java</artifactId>
    
             <version>5.1.38</version>
    
          </dependency>

    2.创建配置文件

    首先建立Mapper.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="com.xt.mybatis">
    
     <!--
    
     statementId=namespace+queryAnimalInfoBySid
    
     属性ID:标示映射文件中的sql的唯一性,ID被称为statementId
    
    属性 parameterType: 入参参数类型
    
    属性resultType:输出结果类型,表示单条数据记录映射成的javaBean
    
     
    
    #{value} 表示预处理,代表占位符
    
    ${value} 表示sql字符串的拼接,将结束到的数据不加任何修饰拼装到sql中。
    
      -->
    
     <select id="queryAnimalInfoBySid" parameterType="string" resultType="com.xt.mybatis.hello.Animal.entity.Animal">
    
     select * from animal where SID=#{sid}
    
     </select>
    
     
    
    <insert id="insertAnimal" parameterType="com.xt.mybatis.hello.Animal.entity.Animal">
    
    insert into animal vaules (#{sid},#{name},#{kind},#[number},#{addrss})
    
    </insert>
    
    <delete id="deleteAnimal" parameterType="string">
    
    delete from animal where SID=#{sid}
    
    </delete>
    
    <update id="updateAnimal" >
    
    update animal set Name=#{name},Kind="kind", Number =#{number},Address=#{address} where SID=#{sid}
    
    </update>
    
    </mapper>

    然后建立myBatis-config.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="xtEnvironment">
    
        <environment id="xtDevelopment">
    
          <transactionManager type="JDBC"/>
    
          <dataSource type="POOLED">
    
            <property name="driver" value="com.mysql.jdbc.Driver"/>
    
            <property name="url" value="jdbc:mysql://localhost:3306/bookshop"/>
    
            <property name="username" value="root"/>
    
            <property name="password" value="root"/>
    
          </dataSource>
    
        </environment>
    
      </environments>
    
      <mappers>
    
    <!-- 引入Mapper文件 -->
    
        <mapper resource="mybatis/mapper/userMapper.xml"/>
    
      </mappers>
    
    </configuration>

    在编写这个文件时,要确定数据的正确性。还有,你要进行操作的表存在,否则先建表。再在工程中建立对应的实体对象,getter,setter和To String方法是必不可少的。

    1. 创建java类,保存将要测试方法。(这是基础性的运用方法,后继博客中会有更好的方法)
    package com.xt.mybatis.hello.Animal.entity;
    
     
    
    import java.io.IOException;
    
     
    
    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.Before;
    
    import org.junit.Test;
    
     
    
    public class myBatisTest {
    
    SqlSessionFactory ssf = null;
    
    SqlSession ss = null;
    
    @Before
    
    public void Init(){
    
          try {
    
                ssf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis/mybatis-config.xml"));
    
                ss = ssf.openSession();
    
          } catch (IOException e) {
    
                e.printStackTrace();
    
          }
    
            
    
    }
    
     @Test
    
    public void queryAnimalInfoBySid() throws IOException{
    
     //创建SqlsessionFactory通过资源加载器加载配置文件
    
    Animal animal = ss.selectOne("statementId ","数据");
    
    System.out.println("=========="+animal);
    
     
    
     }
    
     @Test
    
     public void insertAnimal(){
    
     Animal al = new Animal();
    
     al.setSid("数据");
    
     al.setName("数据");
    
     al.setKind("数据");
    
     al.setNumber(数据);
    
     al.setAddress("数据");
    
     int i = ss.insert("statementId ",al);
    
     ss.commit();
    
     System.out.println("========insert=========="+i);
    
     }
    
     @Test
    
     public void deleteAnimal(){
    
     int affectedRowNo = ss.delete("statementId ","数据");
    
    ss.commit();
    
     System.out.println("===========delete========="+affectedRowNo);
    
     }
    
     @Test
    
     public void updateAnimal(){
    
     Animal am = new Animal();
    
     am.setSid("1801");
    
     am.setName("数据");
    
     am.setKind("数据");
    
     am.setNumber(数据);
    
     am.setAddress("数据");
    
     int i = ss.update("statementId ",am);
    
     ss.commit();
    
     System.out.println("======update====="+i);
    
     }
    
    }
    你一定会喜欢那个因为喜欢她而发光的自己!
    个人博客:http://www.yanghelong.top
  • 相关阅读:
    HDU 5001 Walk (暴力、概率dp)
    Codeforces Round #265 (Div. 2) C 暴力+ 找规律+ 贪心
    zoj 3812 We Need Medicine (dp 状压)
    ZOJ
    ZOJ 3811 / 2014 牡丹江赛区网络赛 C. Untrusted Patrol bfs/dfs/并查集
    POJ 2411 状压dp
    HDU 3001 三进制 状压dp
    POJ 2096 (dp求期望)
    poj 3311 状压dp 最短路
    数据挖掘的基本概念
  • 原文地址:https://www.cnblogs.com/zzu-general/p/7778930.html
Copyright © 2020-2023  润新知