MyBatis实战

MyBatis简介

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

MyBatis快速上手

开发环境准备

说明,本系列教程所有的代码均是在Intellij Idea 16.02版本的IDE上编写的。

1.项目结构


项目结构

2.添加依赖

  • mybatis-3.4.1.jar
  • mysql-connector-java-6.0.3.jar
  • hamcrest-core-1.3.jar
  • junit-4.12.jar

查询数据库中的记录

1.创建数据库和数据表

  • 创建数据表

SET NAMES utf8;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

--  Table structure for `users`

-- ----------------------------

DROP TABLE IF EXISTS `users`;

CREATE TABLE `users` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(45) NOT NULL,

`pwd` varchar(45) NOT NULL,

`age` int(11) NOT NULL ,

`email` varchar(45) NOT NULL ,

`tel` varchar(45) NOT NULL,

`addr` varchar(45) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=580317 DEFAULT CHARSET=utf8;

  • 向表中添加数据

INSERT INTO `users`

VALUES

(‘580314‘, ‘Richard‘, ‘123456‘, ‘21‘, ‘[email protected]‘, ‘13627341394‘, ‘ISS‘),

(‘580315‘, ‘QinJiangbo‘, ‘123456‘, ‘22‘, ‘[email protected]‘, ‘13627341394‘, ‘Hongshan Square‘),

(‘580316‘, ‘Oliver‘, ‘whuiss‘, ‘22‘, ‘[email protected]‘, ‘13627341394‘, ‘ISS‘);

2.创建用户POJO类User.java

 

package com.qinjiangbo.pojo;

/**

* Date: 9/13/16

* Author: [email protected]

*/

public class User {

// 实体类的属性名称和数据库中的字段名称要一一对应起来

private long id;

private String name;

private String pwd;

private int age;

private String email;

private String tel;

private String addr;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getTel() {

return tel;

}

public void setTel(String tel) {

this.tel = tel;

}

public String getAddr() {

return addr;

}

public void setAddr(String addr) {

this.addr = addr;

}

@Override

public String toString() {

return "User{" +

"id=" + id +

", name=‘" + name + ‘\‘‘ +

", pwd=‘" + pwd + ‘\‘‘ +

", age=" + age +

", email=‘" + email + ‘\‘‘ +

", tel=‘" + tel + ‘\‘‘ +

", addr=‘" + addr + ‘\‘‘ +

‘}‘;

}

}

3.添加MyBatis的配置文件configure.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"></transactionManager>

<dataSource type="POOLED">

<property name="driver" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>

<property name="username" value="Richard"/>

<property name="password" value="123456"/>

</dataSource>

</environment>

</environments>

<mappers>

<!-- 注册Mapper映射XML文件 -->

<mapper resource="com/qinjiangbo/dao/UserMapper.xml"></mapper>

</mappers>

</configuration>

NOTE 上面是数据库相关的配置,各位读者可以根据自己的实际情况进行相应的配置。

4.编写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.qinjiangbo.dao.UserMapper">

<select id="findUserById" parameterType="int"

resultType="com.qinjiangbo.pojo.User">

SELECT * FROM users WHERE  id = #{id}

</select>

</mapper>

5.编写测试实例

package com.qinjiangbo.test;

import com.qinjiangbo.pojo.User;

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;

/**

* Date: 9/13/16

* Author: [email protected]

*/

public class MyBatisTest1 {

@Test

public void testFindUserById() {

// 注意这个地方,不少人会直接写configure.xml, 这样会一直取不到值,从而报空指针,

// 需要写全这个资源的全路径

String config = "com/qinjiangbo/conf/configure.xml";

InputStream inputStream = MyBatisTest1.class.getClassLoader().getResourceAsStream(config);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession sqlSession = factory.openSession();

String statement = "com.qinjiangbo.dao.UserMapper.findUserById";

User user = sqlSession.selectOne(statement, 580314);

System.out.println(user);

}

}

6.测试结果

查询用户信息测试结果

稿源:勤快学QKXue.NET

扩展阅读:

MyBatis实战(一)
http://qkxue.net/info/24308/MyBatis
MyBatis实战(三)
http://qkxue.net/info/29369/MyBatis
MyBatis实战(四)
http://qkxue.net/info/30378/MyBatis
MyBatis实战(五)
http://qkxue.net/info/31568/MyBatis
MyBatis实战(六)
http://qkxue.net/info/33106/MyBatis

时间: 2024-10-14 11:19:42

MyBatis实战的相关文章

mybatis实战教程(mybatis in action),mybatis入门到精通

转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibat

mybatis实战教程(mybatis in action)之一:开发环境搭建

文章转载自http://www.yihaomen.com/article/java/302.htm 什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想无论是用过的hibernate,myb

mybatis实战教程(mybatis in action),mybatis入门到精通(转)

转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibat

mybatis实战教程,mybatis入门到精通

转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibat

MyBatis实战总结

什么是MyBatis? ORM工具及其思想 开发环境的搭建 什么是MyBatis? MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索. 使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. ORM工具及其思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 从配置文件(通常是X

mybatis实战教程(mybatis in action)之六:与Spring MVC 的集成

前面几篇文章已经讲到了mybatis与spring 的集成.但这个时候,所有的工程还不是web工程,虽然我一直是创建的web 工程.今天将直接用mybatis与Spring mvc 的方式集成起来,源码在本文结尾处下载.主要有以下几个方面的配置1. web.xml 配置 spring dispatchservlet ,比如为:mvc-dispatcher2. mvc-dispatcher-servlet.xml 文件配置3. spring applicationContext.XML文件配置(与

mybatis实战教程(mybatis in action)之四:实现关联数据的查询

有了前面几章的基础,对一些简单的应用是可以处理的,但在实际项目中,经常是关联表的查询,比如最常见到的多对一,一对多等.这些查询是如何处理的呢,这一讲就讲这个问题.我们首先创建一个Article 这个表,并初始化数据.  程序代码 Drop TABLE IF EXISTS `article`;Create TABLE `article` (  `id` int(11) NOT NULL auto_increment,  `userid` int(11) NOT NULL,  `title` var

mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似.3. trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)4. where (主要是用来简化sql语句中where条件判断的,能智能的处理 a

mybatis实战教程(mybatis in action)之三:实现数据的增删改查

前面已经讲到用接口的方式编程.如果不一致就会出错,这一章主要在上一讲基于接口编程的基础上完成如下事情:1. 用 mybatis 查询数据,包括列表2. 用 mybatis 增加数据3. 用 mybatis 更新数据.4. 用 mybatis 删除数据. 查询数据,前面已经讲过简单的,主要看查询出列表的查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultTyp