mybatis的简单使用

原创 2016年06月01日 15:16:04

在java web工程中对于数据库的操作基本都是通过mybatis库操作的,下面就简单的介绍初步的使用过程。
首先我们建立了测试用的数据库mybatis:

create database mybatis;
use mybatis;
create table users(id int primary key auto_increment,name varchar(20),age int);
insert users(name,age) values ('句芒',100);
insert users(name,age) values ('帝江',200);

我们在这个新建的数据库中建立一个表users,然后插入两条数据。
对应的我们要在Java web工程中创建这个表对于的java类User,很多地方(主要是使用spring的时候)又叫它bean对象。这个java类的属性要与数据库中的字段对应:

package ServaceStudy;

public class User {
    private int id;
    private String name;
    private int age;

    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 int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

操作数据库是需要使用sql语句的,下面我们需要创建users表对应的sql语句的xml文件,userMapper.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="MyMapper.userMapper">
    <select id="getUser" parameterType="int" resultType="ServaceStudy.User">
    select *from users where id=#{id}
    </select>

</mapper>

mapper 标签的属性namespace的值一般是包名+xml文件名,作为命名空间的值。select 标签代表基本的sql语句增删改查中的查,id用于唯一标识这个sql语句,parameterType属性代表查找时传入参数的类型,resultType代表查找结果的返回类型,select *from users where id=#{id} 这是具体的查询语句,表示根据id查询对应的那条数据。
好了到这位置我们已经创建了三个元素:数据库中的一个表,表对应的java类,表对应的mapper文件。这三个元素现在是没有关系的,我们还需要更进一步的使它们产生关联。
在工程中我们需要创建一个xml文件用于管理mybatis在工程中的使用,这个文件大概要完成这些事情:指定连接到哪个数据库,注册表对应的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://10.1.3.121:3306/mybatis" />
                 <property name="username" value="root" />
                 <property name="password" value="123456" />
             </dataSource>
         </environment>
     </environments>

     <mappers>
        <mapper resource="MyMapper/userMapper.xml"/>
     </mappers>

</configuration>

environments标签是环境的意思,这里指的是数据库连接的是生产环境还是开发环境,现在开发过程中一般都连接开发环境的,dataSource数据源标签这里会规定连接数据库的一些信息,driver这里会规定默认加载的架包路径,url设置连接数据库的地址,username和password分别是数据库的用户名和密码。
在mappers标签中会注册我们写的mapper文件如:<mapperresource="MyMapper/userMapper.xml"/>
resource 就是mapper文件的路径。
好了,到这里我们把需要做的前期工作已经完成了,下面写代码测试:

package ServaceStudy;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestMybatis {
    public static String selectUserById(Integer id) {

        InputStream input = TestMybatis.class.getClassLoader().getResourceAsStream("conf.xml");

        String statement = "MyMapper.userMapper.getUser";

        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);
        SqlSession session = sessionFactory.openSession();

        User user = session.selectOne(statement,id);
        session.close();
        return user.getName();
    }
}
InputStream input = TestMybatis.class.getClassLoader().getResourceAsStream("conf.xml");

是使用类加载器加载mybatis的总的配置文件的,也可以使用其自带的类Resources类加载:Reader input = Resources.getResourceAsReader("conf.xml");

String statement = "MyMapper.userMapper.getUser";

这个是指明将要执行哪个mapper文件中的哪条sql语句。
下面获取SqlSession执行查询语句:

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);
        SqlSession session = sessionFactory.openSession();

        User user = session.selectOne(statement,id);
版权声明:本文已经搬迁到博主个人网站:http://13fafa.cn。

MyBatis自我理解

MyBatis的详解!!!
  • zhejingyuan
  • zhejingyuan
  • 2013年11月15日 14:04
  • 7010

mybatis----简单介绍和使用

进公司后,公司用的Mysql数据库,持久层用的就是Mybatis,开始感觉没有接触过,应该挺难,可是现在看来全是自己吓自己,下面让我来简单介绍一下: MyBatis是一个基于java的持久层框架  ...
  • u013045959
  • u013045959
  • 2016年09月16日 14:11
  • 1377

MyBatis简单应用

MyBatis的前身就是iBatis,iBatis本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为M...
  • a468903507
  • a468903507
  • 2015年03月23日 23:53
  • 721

mybatis 框架简单实例

本文主要介绍了如何使用mybatis进行简单的数据库操作。本人使用的是mybatis3.05。 1.创建数据库表(User表) CREATE TABLE `NewTable` ( `userId`...
  • QH_JAVA
  • QH_JAVA
  • 2014年09月17日 14:58
  • 1763

这是mybatis最简单的入门

这里有一个demo#这是mybatis最简单的入门使用的IDE为idea 是maven的哦 这篇只是很简单的一个查询demo 目标是ssm 先来pom文件—-这个不知道在网上哪里找的 ...
  • leifei4468884256
  • leifei4468884256
  • 2015年09月06日 16:17
  • 906

MyBatis学习笔记(一)---一个简单MyBatis示例

前言:前面我写了《利用JDBC访问MySQL数据库》这篇文章,其中讲述了如何利用Java提供的标准化API屏蔽底层数据库实现并操作数据库的方法,在最后提到了利用JDBC仍旧存在的几个局限性: ...
  • sinat_34596644
  • sinat_34596644
  • 2017年03月11日 10:18
  • 559

Mybatis系列(三)简单示例

Mybatis简单使用示例 经过前两篇文章《Mybatis入门》和《Mybatis配置》的介绍,我们对Mybatis有了一定的了解,下面就接合一个实例学习案例,来巩固一下我们前面学习的知识。 环境搭建...
  • chris_mao
  • chris_mao
  • 2015年09月29日 12:39
  • 6094

初学mybatis的理解

1、mybatis是对持久层的封装; 2、 核心对象:sqlsessionFactory sqlsession ,由工厂类得到session对象,再由session对象通过持久层接口的class文件...
  • wang_lufei
  • wang_lufei
  • 2016年03月26日 17:04
  • 682

Mybatis学习(一)原生态的JDBC编程总结

在学习任何一种ORM的时候,免不了的都要让我们想起原生态的JDBC是如何写的,因为只有这样你才能感觉出来为什么要有这个ORM新的产品,诸如学习hibernate、等等。jbdc顾名思义的意思是java...
  • sun_aichao
  • sun_aichao
  • 2015年06月10日 15:54
  • 2578

MyBatis学习笔记(一)----简单的环境搭建及测试Demo

1.新建一个Java Project,将所需要的jar包从网上下载下来,然后添加到项目依赖中,如下: 说明一下: mybatis : 就不用说了,我们用的就是他 mysql-connecto...
  • garychenqin
  • garychenqin
  • 2015年04月16日 16:17
  • 1645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybatis的简单使用
举报原因:
原因补充:

(最多只允许输入30个字)