Mybatis的详细使用教程_java

Mybatis所需要的jar包:

需要引用两个jar包,一个是mybatis,另一个是MySQL-connector-Java,如果是maven工程的话,pom里如下添加依赖就可以了。

<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.2.3</version>
</dependency>
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.26</version>
</dependency>

数据准备:

在MySQL中造点数据进行测试用:

CREATE DATABASE mybatis_test;
CREATE TABLE user
(
 age INTEGER NOT NULL,
 name VARCHAR(64) NOT NULL DEFAULT ''
);
insert user values(18,'zhanjindong');
insert user values(20,'zhangsan');

配置文件:

需要两类配置文件,一类是MyBatis的配置文件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>
 <settings>
  <!-- changes from the defaults for testing -->
  <setting name="cacheEnabled" value="false" />
  <setting name="useGeneratedKeys" value="true" />
  <setting name="defaultExecutorType" value="REUSE" />
 </settings>
 <typeAliases>
  <typeAlias alias="User" type="test.mybatis.User"/>
 </typeAliases>
 <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://192.168.71.38:3306/mybatis_test"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
   </dataSource>
  </environment>
 </environments>
 <mappers>
  <mapper resource="mappers/UserMapper.xml" />
 </mappers>
</configuration>

另一类是数据访问接口映射文件:示例中是UserMapper.xml。这个文件一般放在src/main/resource下面或子目录下mybatis就可以找到了,在mybatis-config.xml中由mappers/mapper节点的resource指定。

<?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="test.mybatis.UserMapper">
 <!-- 这里namespace必须是UserMapper接口的路径” -->
 <insert id="insertUser" parameterType="User">
  insert into user(name,age) values(#{name},#{age})
  <!-- 这里sql结尾不能加分号,否则报“ORA-00911”的错误 -->
 </insert>
 <!-- 这里的id必须和UserMapper接口中的接口方法名相同 -->
 <select id="getUser" resultType="User" parameterType="java.lang.String">
  select * from user where name=#{name}
 </select>
</mapper>

对应这个映射文件就是test.mybatis这个命名空间下的UserMapper这个接口,只是定义了访问数据表的接口:

package test.mybatis;
public interface UserMapper {
 public void insertUser(User user);
 public User getUser(String name);
}

需要一个POJO:User.java

package test.mybatis;
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;
 }
 public User(String name, Integer age) {
  super();
  this.name = name;
  this.age = age;
 }
 public User() {
  super();
 }
}

测试:

通过MyBatis操作数据库用到的是一个叫SqlSession的类,这个类是通过SqlSessionFactory产生的,一般建议在全局维护一个SqlSessionFactory就可以了。

TestMyBatis.java
package test.mybatis;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
 private final static SqlSessionFactory sqlSessionFactory;
 static {
  String resource = "mybatis-config.xml";
  Reader reader = null;
  try {
   reader = Resources.getResourceAsReader(resource);
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
 }
 public static SqlSessionFactory getSqlSessionFactory() {
  return sqlSessionFactory;
 }
}

测试代码如下:

TestMyBatis.java
package test.mybatis;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
public class TestMyBatis {
 static SqlSessionFactory sqlSessionFactory = null;
 static {
  sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
 }
 public static void main(String[] args) {
  testAdd();
  getUser();
 }
 public static void testAdd() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
   UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
   User user = new User("lisi", new Integer(25));
   userMapper.insertUser(user);
   sqlSession.commit();// 这里一定要提交,不然数据进不去数据库中
  } finally {
   sqlSession.close();
  }
 }
 public static void getUser() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
   UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
   User user = userMapper.getUser("zhangsan");
   System.out.println("name: " + user.getName() + "|age: "
     + user.getAge());
  } finally {
   sqlSession.close();
  }
 }
}

1、mybatis会用log4j记录日志,但是开启debug模式貌似对性能影响非常厉害。

2、mybatis的查询缓存对性能的影响非常大,启用和不启用差距非常大

以上所述是小编给大家介绍的Mybatis的详细使用教程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mybatis使用详解
mybatis详细教程、java mybatis 教程、mybatis 使用教程、mybatis plus使用教程、java mybatis单独使用,以便于您获取更多的相关知识。

时间: 2024-10-30 01:52:57

Mybatis的详细使用教程_java的相关文章

mybatis原理概述入门教程_java

本文我将要介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和hibernate之间存在着怎么样的关系,希望对小伙伴们有帮助,不足之处,还请多多指教. 什么是mybatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. MyBatis 是支持定

MyBatis高级映射学习教程_java

对mybatis基础入门不太清楚的朋友可以参考下本篇文章:MyBatis入门学习教程(一)-MyBatis快速入门. 认识MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架

MyBatis一对一映射初识教程_java

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 一对一映射 在生活中,一对一的例子还是有的,比如啦,学生和身份证哦,或者在我国,实行的是一夫一妻制度哦.那么我们以学生和身份证每个学生只有一张身份证,而每张身份证的

ant使用指南详细入门教程_java

一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 开发环境: 复制代码 代码如下: System:Windows JDK:1.6+ IDE:eclipse ant:1.9.1 二.优点 ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 1.跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性. 2.操作简单:Ant是由一个内置任务和可选任务

MyBatis多对多映射初识教程_java

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 在上篇文章给大家介绍MyBatis一对一映射初识教程. 下面给大家说下mybatis多对多映射知识,具体详情如下所示: 多对多的例子也不少,比如课程与学生之间的关系

PS笔刷运用教程:Blur’s good brush详细使用教程

Photoshop笔刷运用教程:Blur's good brush详细使用教程 笔刷下载地址:http://www.3lian.com/psd/ps/ps1/ 出自:火星时代动画 作者:杨雪果老师 一. 绘画 Blur's good brush包含Good画笔.风格类画笔.油画笔.特效画笔.形状类画笔.纹理类画笔6类画笔工具,我们可以选择其中需要的画笔来完成某一种类型的绘画,下面我将向大家做一个简要的讲解. 1.Good系列画笔 -Good brush类画笔包含了若干综合类的画笔工具,是最为常用

无线路由器设置详细图文教程

无线路由器设置详细图文教程 1.先将TP-LINK无线路由器通过有网线的链接方式接好后,在IE输入192.168.1.1(个别是192.168.0.1,具体看路由器底部说明),用户名和密码默认为admin,登陆即可进入无线路由器设置界面. 打开无线路由器设置界面一般情况会弹出一个设置向导小框,很多人会问无线路由器怎么用啊?其实就是这样简单的按下一步进行向导设置,方便简单即可完成. 通过ASDL拨号上网用户选择"PPPoE"来进行下一步设置 2.如果通过ASDL拨号上网用户选择"

sql server 2000 Personal中文版详细安装教程

微软SQL server 2000 PRO 个人中文版,可以安装到 xp 等操作系统上面,用于程序员调试开发用.今天就写一个Microsoft SQL Server 2000 Personal Edition的详细安装教程,希望能帮到大家. 1.从系统之家下载Microsoft SQL Server 2000 Personal Edition软件:http://www.xp510.com/xiazai/Networking/Servers/15183.html.将其解压到电脑的任一目录下. 2.

Word2007制作公章详细图文教程

Word2007制作公章详细图文教程 很多软件都可以制作公章,常用的软件有Photoshop.Coreldraw和Illustrator等,但是很少人知道其实Word软件也可以制作公章.首先给大家看制作出来的效果. Word2007绘制公章具体步骤: 绘制圆: 首先在文档中插入一个椭圆.选择"插入"选项卡,点击"形状",插入椭圆. 图1 按住"Shift"键,同时用鼠标拖拉画出一个正圆. 图2 选中圆,然后选择"格式"选项卡,