mybatis 3.4.5 HelloWorld 01

来源:互联网 发布:电脑编程培训学校 编辑:程序博客网 时间:2024/06/11 07:05

在SSH框架盛行的时代,ORM和持久层框架都不断响彻在耳边,今天如歌就带领大家一起来认识另一种持久层框架;

官网api

搭建开发环境

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.ruge</groupId>  <artifactId>mybatis</artifactId>  <packaging>war</packaging>  <version>1.0-SNAPSHOT</version>  <name>mybatis Maven Webapp</name>  <url>http://maven.apache.org</url>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis</artifactId>      <version>3.4.5</version>    </dependency>    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis-spring</artifactId>      <version>1.3.1</version>    </dependency>    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>5.1.45</version>    </dependency>    <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>1.2.17.redhat-3</version>    </dependency>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.12</version>    </dependency>  </dependencies>  <build>    <finalName>mybatis</finalName>  </build></project>




创建数据库

/*Navicat MySQL Data TransferSource Server         : 爱丽丝、如歌Source Server Version : 50717Source Host           : localhost:3306Source Database       : mybatisTarget Server Type    : MYSQLTarget Server Version : 50717File Encoding         : 65001Date: 2017-12-20 15:23:16*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `tbl_emp`-- ----------------------------DROP TABLE IF EXISTS `tbl_emp`;CREATE TABLE `tbl_emp` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(255) DEFAULT NULL,  `gender` varchar(255) DEFAULT NULL,  `email` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;-- ------------------------------ Records of tbl_emp-- ----------------------------INSERT INTO `tbl_emp` VALUES ('1', '张三', 'gen', '1@qq.com');

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="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>                <property name="username" value="root"/>                <property name="password" value="root"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="mapper/Emp.xml"/>    </mappers></configuration>


Controller

package com.ruge.mybatis.controller;import com.ruge.mybatis.entity.Emp;import com.ruge.mybatis.mapper.EmpMapper;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.Test;import java.io.InputStream;import java.util.List;/** * @author 爱丽丝、如歌 * @Description: TODO * @date 2017/12/20 11:07 */public class EmpController {    @Test    public void Conn() throws Exception{        String resource = "mybatis-config.xml";        InputStream inputStream = Resources.getResourceAsStream(resource);        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        SqlSession session = sqlSessionFactory.openSession();        try {            EmpMapper mapper = session.getMapper(EmpMapper.class);            List<Emp> ee = mapper.select(1);            System.out.println(ee);        } finally {            session.close();        }    }}


Mapper

package com.ruge.mybatis.mapper;import com.ruge.mybatis.entity.Emp;import java.util.List;/** * @author 爱丽丝、如歌 * @Description: TODO * @date 2017/12/20 11:19 */public interface EmpMapper {    public List<Emp> select ();}

entity

package com.ruge.mybatis.entity;/** * @author 爱丽丝、如歌 * @Description: TODO * @date 2017/12/20 10:56 */public class Emp {    private int id;    private String name;    private String gender;    private String email;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    @Override    public String toString() {        return "Emp{" +                "id=" + id +                ", name='" + name + '\'' +                ", gender='" + gender + '\'' +                ", email='" + email + '\'' +                '}';    }}


Emp.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.ruge.mybatis.mapper.EmpMapper">    <select id="select" resultType="com.ruge.mybatis.entity.Emp">        select * from tbl_emp where id = #{id}    </select></mapper>

总结

         mybatis是Apache下的顶级项目,是一个持久层框架,是一个不完全的ORM框架;

        mybatis使得程序将主要精力放在了sql上,它通过自身提供的映射方式,自由且灵活地生成满足程序需要的sql语句(半自动化,大部分需要程序员自己编写);

        mybatis可以将向PreparedStatement中输入的参数自动进行输入映射,将查询结果集灵活映射成Java对象(输出映射);

      以上是如歌对mybatis基础的整理,希望能帮大家更好的了解MyBatis!如有更好的建议或者意见,请留言!



原创粉丝点击