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);

 }

}

最新文章

  1. Linux程序包管理之yum及源代码安装
  2. 不要给&lt;a&gt;设置outline:none
  3. Javascript数组函数库
  4. MOOCULUS微积分-2: 数列与级数学习笔记 2. Series
  5. linux 操作mysql
  6. 【转】linux驱动程序中的并发控制
  7. listen和accept函数
  8. 宁波Uber优步司机奖励政策(1月18日~1月24日)
  9. 常用监控SQL
  10. haproxy hdr和path
  11. 【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(一)
  12. Maven 浅谈一
  13. 《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解
  14. 《Java》第六周学习总结
  15. Docker for Win10中文乱码问题
  16. 洛谷10月月赛II题解
  17. python访问互联网
  18. [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)
  19. jQuery开发工具
  20. linux保存住github的账号和密码

热门文章

  1. (一)jenkins+git+docker
  2. MySQL 8.0索引合并
  3. 一种统计ListView滚动距离的方法
  4. 朴素贝叶斯分类器Naive Bayes
  5. Python练习题 035:Project Euler 007:第10001个素数
  6. python数据结构树和二叉树简介
  7. PADS Layout VX.2.3 修改层名
  8. 最全vue的vue-amap使用高德地图插件画多边形范围
  9. 【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
  10. centos 7 安装docker 常用指令