今天总结的是mybatis,首先说mybatis是什么?

MyBatis 是一个简化和实现了 Java 数据持久化层(persistence layer)的开源框架,它抽象了大量的 JDBC 冗余代 码,并提供了一个简单易用的 API 和数据库交互。 MyBatis 的前身是 iBATIS,iBATIS 于 2002 年由 Clinton Begin 创建。MyBatis 3 是 iBATIS 的全新设计,支持 注解和 Mapper。

而 MyBatis 流行起来有以下原因:

 它消除了大量的 JDBC 冗余代码

 它有低的学习曲线

 它能很好地与传统数据库协同工作

 它可以接受 SQL 语句

 它提供了与 Spring 和 Guice 框架的集成支持

 它提供了与第三方缓存类库的集成支持

 它引入了更好的性能

下面介绍一个mybatis的小例子:

使用 MyBatis 开发一个简单的 Java 项目:大致步骤如下

 新建表 STUDENTS,插入样本数据

 新建一个 Java 项目,将 MyBatis-3.2.2.jar 添加到 classpath 中

 新建建 MyBatisSqlSessionFactory 单例模式类

 新建映射器 StudentMapper 接口和 StudentService 类

 新建一个 JUnit 测试类来测试 StudentService

①我使用的是mysql,首先新建一个数据库mybatis1,再新建表STUDENTS

  1. CREATE TABLE STUDENTS
  2. (
  3. stud_id int(11) NOT NULL AUTO_INCREMENT,
  4. name varchar(50) NOT NULL,
  5. email varchar(50) NOT NULL,
  6. dob date DEFAULT NULL,
  7. PRIMARY KEY (stud_id)
  8. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
  9. /*Sample Data for the students table */
  10. insert into students(stud_id,name,email,dob)
  11. values (1,'Student1','student1@gmail.com','1983-06-25');
  12. insert into students(stud_id,name,email,dob)
  13. values (2,'Student2','student2@gmail.com','1983-06-25');

②我新建的是maven项目,导入jar包在pom.xml中进行了配置

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.bai</groupId>
  5. <artifactId>bai</artifactId>
  6. <packaging>war</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>bai Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <dependencies>
  11. <dependency>
  12. <groupId>junit</groupId>
  13. <artifactId>junit</artifactId>
  14. <version>3.8.1</version>
  15. <scope>test</scope>
  16. </dependency>
  17.  
  18. <dependency>
  19. <groupId>org.mybatis</groupId>
  20. <artifactId>mybatis</artifactId>
  21. <version>3.2.2</version>
  22. <scope>test</scope>
  23. </dependency>
  24. <dependency>
  25. <groupId>mysql</groupId>
  26. <artifactId>mysql-connector-java</artifactId>
  27. <version>5.1.22</version>
  28. <scope>runtime</scope>
  29. </dependency>
  30.  
  31. <dependency>
  32. <groupId>org.slf4j</groupId>
  33. <artifactId>slf4j-api</artifactId>
  34. <version>1.7.5</version>
  35. <scope>test</scope>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.slf4j</groupId>
  39. <artifactId>slf4j-log4j12</artifactId>
  40. <version>1.7.5</version>
  41. <scope>runtime</scope>
  42. </dependency>
  43. <dependency>
  44. <groupId>log4j</groupId>
  45. <artifactId>log4j</artifactId>
  46. <version>1.2.17</version>
  47. <scope>runtime</scope>
  48. </dependency>
  49. </dependencies>
  50. <build>
  51. <finalName>bai</finalName>
  52. </build>
  53. </project>

③ 新建 log4j.properties 文件,添加到 classpath 中.

  1. log4j.rootLogger=DEBUG, stdout
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=%d [%-5p] %c - %m%n

④ 创建 MyBatis 的主要配置文件 mybatis-config.xml,其中包括数据库连接信息,类型别名等等,然后将其加 到 classpath 中;

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. <typeAliases>
  6. <typeAlias alias="Student" type="com.mybatis3.domain.Student" />
  7. </typeAliases>
  8. <environments default="development">
  9. <environment id="development">
  10. <transactionManager type="JDBC" />
  11. <dataSource type="POOLED">
  12. <property name="driver" value="com.mysql.jdbc.Driver" />
  13. <property name="url" value="jdbc:mysql://localhost:3306/mybatis1" />
  14. <property name="username" value="root" />
  15. <property name="password" value="" />
  16. </dataSource>
  17. </environment>
  18. </environments>
  19. <mappers>
  20. <mapper resource="com/mybatis3/mappers/StudentMapper.xml" />
  21. </mappers>
  22. </configuration>

⑤创建 SQL 映射器 XML 配置文件 StudentMapper.xml 并且将它放在 com.mybatis3.mappers 包中,注意这个包要在resource下面,如果在main下面的话,会遇到读取不到这个配置文件的问题

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.mybatis3.mappers.StudentMapper">
  5. <resultMap type="Student" id="StudentResult">
  6. <id property="studId" column="stud_id" />
  7. <result property="name" column="name" />
  8. <result property="email" column="email" />
  9. <result property="dob" column="dob" />
  10. </resultMap>
  11. <select id="findAllStudents" resultMap="StudentResult">
  12. SELECT * FROM STUDENTS
  13. </select>
  14. <select id="findStudentById" parameterType="int" resultType="Student">
  15. SELECT STUD_ID AS STUDID, NAME, EMAIL, DOB
  16. FROM STUDENTS WHERE STUD_ID=#{Id}
  17. </select>
  18. <insert id="insertStudent" parameterType="Student">
  19. INSERT INTO STUDENTS(STUD_ID,NAME,EMAIL,DOB)
  20. VALUES(#{studId },#{name},#{email},#{dob})
  21. </insert>
  22. </mapper>

⑥ 新建 MyBatisSqlSessionFactory 单例类

  1. package com.mybatis3.util;
  2.  
  3. import org.apache.ibatis.io.Resources;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  7.  
  8. import java.io.*;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11.  
  12. /**
  13. * Created by peng on 2016/8/4.
  14. */
  15. public class MyBatisSqlSessionFactory {
  16. private static SqlSessionFactory sqlSessionFactory;
  17. public static SqlSessionFactory getSqlSessionFactory(){
  18. if(sqlSessionFactory==null){
  19. InputStream inputStream;
  20. try {
  21. inputStream = Resources.getResourceAsStream("mybatis-config.xml");
  22. sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  23. }
  24. catch(IOException e){
  25. System.out.println("aaa");
  26. System.out.println(e.getMessage());
  27. throw new RuntimeException(e.getCause());
  28. }
  29. }
  30. return sqlSessionFactory;
  31. }
  32. public static SqlSession openSession(){
  33. return getSqlSessionFactory().openSession();
  34. }
  35. }

上述的代码段中,我们创建了一个 SqlSessionFactory 对象,我们将使用它来获得 SqlSession 对象和执行映射的SQL 语句。

⑦ 新建 StudentMapper 接口和 StudentService 类

1. 首先, 创建 JavaBean Student.java

  1. package com.mybatis3.domain;
  2.  
  3. import java.util.Date;
  4.  
  5. /**
  6. * Created by peng on 2016/8/4.
  7. */
  8. public class Student {
  9. private Integer studId;
  10. private String name;
  11. private String email;
  12. private Date dob;
  13. public String getName() {
  14. return name;
  15. }
  16.  
  17. public Integer getStudId() {
  18. return studId;
  19. }
  20.  
  21. public String getEmail() {
  22. return email;
  23. }
  24.  
  25. public Date getDob() {
  26. return dob;
  27. }
  28.  
  29. public void setStudId(Integer studId) {
  30. this.studId = studId;
  31. }
  32.  
  33. public void setName(String name) {
  34. this.name = name;
  35. }
  36.  
  37. public void setEmail(String email) {
  38. this.email = email;
  39. }
  40.  
  41. public void setDob(Date dob) {
  42. this.dob = dob;
  43. }
  44.  
  45. }

2. 创建映射器 Mapper 接口 StudentMapper.java 其方法签名和 StudentMapper.xml 中定义的 SQL 映射定义名 相同

  1. package com.mybatis3.mappers;
  2.  
  3. import com.mybatis3.domain.Student;
  4.  
  5. import java.util.List;
  6.  
  7. /**
  8. * Created by peng on 2016/8/4.
  9. */
  10. public interface StudentMapper {
  11. List<Student>findAllStudents();
  12. Student findStudentById(Integer id);
  13. void insertStudent(Student student);
  14.  
  15. }

3. 现在创建 StudentService.java 实现对表 STUDENTS 的数据库操

  1. package com.mybatis3.services;
  2.  
  3. import com.mybatis3.domain.Student;
  4. import com.mybatis3.mappers.StudentMapper;
  5. import com.mybatis3.util.MyBatisSqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSession;
  7. import org.slf4j.LoggerFactory;
  8.  
  9. import java.util.List;
  10.  
  11. /**
  12. * Created by peng on 2016/8/4.
  13. */
  14. public class StudentService {
  15. private org.slf4j.Logger logger= LoggerFactory.getLogger(getClass());
  16. public List<Student>findAllStudents()
  17. {
  18. SqlSession sqlSession= MyBatisSqlSessionFactory.openSession();
  19. try {
  20. StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
  21. return studentMapper.findAllStudents();
  22. }
  23. finally {
  24. sqlSession.close();
  25. }
  26. }
  27. public Student findStudentById(Integer studId)
  28. {
  29. logger.debug("Select Student By ID:{}",studId);
  30. SqlSession sqlSession=MyBatisSqlSessionFactory.openSession();
  31. try{
  32. StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
  33. return studentMapper.findStudentById(studId);
  34. }
  35. finally {
  36. sqlSession.close();
  37. }
  38. }
  39. public void createStudent(Student student)
  40. {
  41. SqlSession sqlSession=MyBatisSqlSessionFactory.openSession();
  42. try{
  43. StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
  44. studentMapper.insertStudent(student);
  45. sqlSession.commit();
  46. }
  47. finally {
  48. sqlSession.close();
  49. }
  50. }
  51. }

⑨ 新建一个 JUnit 测试类来测试 StudentService

  1. package com.mybatis3.services;
  2.  
  3. import com.mybatis3.domain.Student;
  4. import org.junit.AfterClass;
  5. import org.junit.Assert;
  6. import org.junit.BeforeClass;
  7. import org.junit.Test;
  8.  
  9. import java.util.Date;
  10. import java.util.List;
  11.  
  12. /**
  13. * Created by peng on 2016/8/4.
  14. */
  15. public class StudentServiceTest {
  16. private static StudentService studentService;
  17. @BeforeClass
  18. public static void setup(){
  19. studentService=new StudentService();
  20. }
  21. @AfterClass
  22. public static void teardown(){
  23. studentService=null;
  24. }
  25. @Test
  26. public void testFindAllStudents()
  27. {
  28. List<Student>students=studentService.findAllStudents();
  29. Assert.assertNotNull(students);
  30. for(Student student:students)
  31. {
  32. System.out.println(student);
  33. }
  34. }
  35. @Test
  36. public void testFindStudentById()
  37. {
  38. Student student=studentService.findStudentById(1);
  39. Assert.assertNotNull(student);
  40. System.out.println(student);
  41. }
  42. @Test
  43. public void testCCeateStudent()
  44. {
  45. Student student=new Student();
  46. int id=3;
  47. student.setStudId(id);
  48. student.setName("student_"+id);
  49. student.setEmail("student_"+id+"gmail.com");
  50. student.setDob(new Date());
  51. studentService.createStudent(student);
  52. Student newStudent=studentService.findStudentById(id);
  53. Assert.assertNotNull(newStudent);
  54. }
  55. }

⑩ 它是怎么工作的
首先,我们配置了 MyBatis 最主要的配置文件-mybatis-config.xml,里面包含了 JDBC 连接参数;配置了映射器 Mapper XML 配置文件文件,里面包含了 SQL 语句的映射。  
我们使用 mybatis-config.xml 内的信息创建了 SqlSessionFactory 对象。每个数据库环境应该就一个 SqlSessionFactory 对象实例,所以我们使用了单例模式只创建一个 SqlSessionFactory 实例。  
我们创建了一个映射器 Mapper 接口-StudentMapper,其定义的方法签名和在 StudentMapper.xml 中定义的完全 一样(即映射器 Mapper 接口中的方法名跟 StudentMapper.xml 中的 id 的值相同)。注意 StudentMapper.xml 中 namespace 的值被设置成 com.mybatis3.mappers.StudentMapper,是 StudentMapper 接口的完全限定名。这使我们 可以使用接口来调用映射的 SQL 语句。  
在 StudentService.java 中,我们在每一个方法中创建了一个新的 SqlSession,并在方法功能完成后关闭 SqlSession。每一个线程应该有它自己的 SqlSession 实例。SqlSession 对象实例不是线程安全的,并且不被共享。所 以 SqlSession 的作用域最好就是其所在方法的作用域。从 Web 应用程序角度上看,SqlSession 应该存在于 request 级 别作用域上。

注意:

在看书学习的时候,遇到了几个概念性的问题:

classpath概念:设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序(后面会介绍到Java程序编译完成之后,会以.class文件存在)。如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统找到指定的工具程序(以Windows来说就是找到.exe文件),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(也就是.class文件)。

本书中有时候提到新建了某文件加入到classpath中,放到webapp下面的WEB-INF下面即可。

resource想新建package却新建不了?

aaarticlea/png;base64,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" alt="" />

这两个文件夹的类型都是Sources的时候才能新建package,由于博主学习maven有限,原理不太明白,有懂的读者欢迎指明。

最后运行了测试类,运行成功。

mybatis学习(一)一个在idea下的实例的更多相关文章

  1. mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下)

    继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-we ...

  2. mybatis学习笔记(14)-查询缓存之中的一个级缓存

    mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 ...

  3. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  4. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  5. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  6. (原创)mybatis学习一,夯实基础

    一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...

  7. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  8. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  9. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

随机推荐

  1. 使用ApplicationLoader中出现报错:The IPA is invalid. It does not inlude a Payload directory

    问题处理方法: 1.将achieve的.app后缀的软件包放在一个payload的文件夹中 2.压缩该文件夹,改变.zip后缀为.ipa 3.使用applicationLoader上传该文件  

  2. cocos2d-x 纹理研究

    转自:http://blog.csdn.net/qq51931373/article/details/9119161 1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要 ...

  3. Codeforces Round #322 (Div. 2) C. Developing Skills 优先队列

    C. Developing Skills Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/p ...

  4. Android ADB使用之详细篇

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

  5. paip.输入法编程---词频顺序order by py

    paip.输入法编程---词频顺序order by py 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn ...

  6. [置顶] MySQL Cluster初步学习资料整理--安装部署新特性性能测试等

    1.1 mysql-cluster简介 简单的说,MySQLCluster实际上是在无共享存储设备的情况下实现的一种完全分布式数据库系统,其主要通过NDBCluster(简称NDB)存储引擎来实现. ...

  7. WSGI、flup、fastcgi、web.py的关系

    Apache/lighttpd: 相当于一个request proxy,根据配置,把不同的请求转发给不同的server处理,例如静态的文件请求自己处理,这个时候它就像一个web server,对于fa ...

  8. 如何在mac上創建txt文档

    文件編輯(Mac下的記事本),shift + command + T 進入純文字編輯模式!

  9. Best Practice of cross-platform games

    __super keyword this keyworld is offered only by Microsoft VC. So you had to call the very name of p ...

  10. C# 之 获取文件名及拓展名

    1.用Path类的方法(最常用) string fullPath = @"\WebSite\Default.aspx"; string filename = System.IO.P ...