java 学习笔记--mybatis 三剑客(mybatis)

Java项目中使用Mybatis入门程序

wanna 关注

2017.03.23 14:33* 字数 270 阅读 1243评论 0喜欢 5

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。

欢迎访问本人博客:http://wangnan.tech

什么是 MyBatis ?

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。

MyBatis github

https://github.com/mybatis/mybatis-3

MyBatis 文档

http://mybatis.github.io/mybatis-3/zh/index.html

入门程序

想要使用 MyBatis 只需将 mybatis-x.x.x.jar 文件置于 classpath 中。

如果使用 Maven 构建项目,则需将下面的 dependency 置于 pom.xml 中:

    <dependency> 
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId> 
        <version>3.8.2</version> 
    </dependency>

我选择第二种,在Eclipse中新建一个maven项目

项目结构:

01.jpg

各文件介绍:

  • pom文件:由于使用了mySQL数据库,这里还依赖了一个mySQL驱动包
  • 实体类User :
  • UserMapper接口:
  • UserMapper接口的实现,userMapper.xml:
  • 数据源配置 configuration.xml
  • 测试类MyBatisTest:
     <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/xsd/maven-4.0.0.xsd">  
      <modelVersion>4.0.0</modelVersion>  
      <groupId>Mybatis</groupId>  
      <artifactId>Mybatis</artifactId>  
      <version>0.0.1-SNAPSHOT</version>  
      <dependencies> 
        <dependency> 
          <groupId>org.mybatis</groupId>  
          <artifactId>mybatis</artifactId>  
          <version>3.2.8</version> 
        </dependency>  
        <dependency> 
          <groupId>mysql</groupId>  
          <artifactId>mysql-connector-java</artifactId>  
          <version>5.1.34</version> 
        </dependency> 
      </dependencies> 
     </project>
  package com.mybatis.domain;
 
 
    public class User {
         private String name;
         private Integer age;
         
         public String getName() {
            return name;
         }
         
         public void setName(String name) {
         this.name = name;
         }
         
         public Integer getAge() {
         return age;
         }
         
         public void setAge(Integer age) {
            this.age = age;
         }
         
    }
package com.mybatis.mapper; 
import com.mybatis.domain.User; 
 
public interface UserMapper { 
    public User findById(String Id); 
}
    <?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"> <!--相当于UserMapper接口的实现 namespace必须是UserMapper类路径-->
    <mapper namespace="com.mybatis.mapper.UserMapper"> 
        <!-- findById必须和接口中的方法名一样 返回一个User--> 
        <select id="findById" parameterType="String"
        resultType="com.mybatis.domain.User"> 
        select * from user where id=#{id} 
        </select> 
    </mapper>
    <?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/test" />
                    <property name="username" value="root" /> 
                    <property name="password" value="123456" /> 
                </dataSource>
            </environment> 
        </environments> <mappers> 
            <!--userMapper.xml装载进来 --> 
            <mapper resource="userMapper.xml" /> 
        </mappers> 
    </configuration>
package com.mybatis.test;
 
import com.mybatis.domain.User;
 
import com.mybatis.mapper.UserMapper;
 
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 java.io.IOException;
 
 
public class MyBatisTest {
    /** * MyBatis SqlSessionFactory * SqlSessionFactory????SqlSession????????????SqlSession??????????commit?rollback?close???? * @return */ private static SqlSessionFactory getSessionFactory() {
        SqlSessionFactory sessionFactory = null;
        String resource = "configuration.xml";
        try {
            sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(
                        resource));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sessionFactory;
    }
 
    public static void main(String[] args) {
        SqlSession sqlSession = getSessionFactory().openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = userMapper.findById("1");
        System.out.println(user.getName());
    }
}
 

数据库中插入条数据:

id=”1” name=”wn” age=”23”

原文地址:https://www.cnblogs.com/ransom/p/8422501.html

时间: 2024-10-08 08:44:31

java 学习笔记--mybatis 三剑客(mybatis)的相关文章

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

java学习笔记一

只记录一些我认为比较必要,容易出错的地方.(不断更新中) 内存:分为四段,代码段code segment,数据段data segment,栈stack, 堆heap.记住如下图 数据类型: 1.java整形常量默认为int类型,当使用long类型时,因此需要添加“l”或“L”,一般用大写,小写像1.如long i = 888888888888L 2.浮点数时会默认为double类型,因此使用float时需要添加f.如 float i = 0.123f 3.java支持大数运算. 强制转换 flo

java学习笔记(三)java中的修饰符abstract、static与final

一.四种访问级别的访问范围 访问级别 访问修饰符 同类 同包 子类 不同的包 公开 public 受保护 protected 默认 没有访问修饰符 私有的 private 二.使用abstract修饰符需要遵守的语法规则 1.抽象类中可以没有抽象方法,但是包含抽象方法的类必须定义为抽象类,即用abstract修饰: 2.抽象类跟抽象方法不能被final修饰符修饰: 3.抽象类中可以有非抽象方法,因为继承抽象类的子类必须重写父类中所有的抽象方法,因此抽象类中不能有抽象构造方法和抽象静态方法: 4.

Java学习笔记day_01

Java学习笔记(复习整理) 虽然不知道该怎么写,但是不起步就永远不知道该怎么做..刚开始可能会写的很差劲,但会一点一点变好的. 本笔记是以我按照传智播客的视频和Java核心思想来学习,前面的基础部分主要是用于个人的复习使用的. 第一段代码:HelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }

【Java学习笔记之二十六】深入理解Java匿名内部类

在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者