MyBatis学习手记(一)MaBatis入门

MyBatis学习手记一

前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html

一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包

             链接:https://github.com/mybatis/mybatis-3/releases

            这里使用的数据库是MySQL,所以还需要Mysql的驱动包、


二、其实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>
    
    <!-- 这里需要注意,这个typeAliases不能放在 environments 这个节点的下面,否则会报错 -->
    <typeAliases> 
        <typeAlias alias="User" type="com.xcode.beens.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://127.0.0.1:3306/mybatis" />
            <property name="username" value="root"/>
            <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <!-- 这里好多人是配置的 xml配置文件。我这里配置的是它的接口,相当于xml文件的映射Java接口 -->
        <mapper class="com.xcode.beens.mapperInterfaces.UserMapper"/>
    </mappers>
</configuration>

三、牛逼的地方来了。例如我们数据库里面有User这个表

    User表

id
name sex address
1 张三 江西
2 李四 上海

我们就在我们项目中新建一个Been  User.java

User.java

public class User
{
        //类里的属性名与表结构字段名相同
	private int id;
	private String name;
	private String sex;
	private String address;
	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 String getSex()
	{
		return sex;
	}
	public void setSex(String sex)
	{
		this.sex = sex;
	}
	public String getAddress()
	{
		return address;
	}
	public void setAddress(String address)
	{
		this.address = address;
	}
}

MyBatis-Config.xml 中配置一下

    <!-- 这个其实不用配置也可以,嫌麻烦也可以不用去配置 -->
    <typeAliases> 
        <typeAlias alias="User" type="com.xcode.beens.User"/> 
    </typeAliases>

然后为了操作数据库的数据,我们新建一个接口,用来封装对数据库的操作

UserMapper.java

package com.xcode.beens.mapperInterfaces;

import org.apache.ibatis.annotations.Select;
import com.xcode.beens.User;

public interface UserMapper
{
	@Select("select * from user where id = #{id}")
	public User selectUserById(int id);
}

从字面意思上可以看得出,这个接口封装了一个操作,selectUserById ,我们可以看见,在这个方法的上面有一段注解,:

@Select("select * from user where id = #{id}")

其实最牛逼的就是这个注解了。这个注解成功的将数据库的sql语句封装成了 Java 的操作。

然后 为了让MyBatis知道我们在这里封装了这么一个操作。

我们必须在它的配置文件MyBatis-Config.xml 里面配置一下。让MyBatis知道有这么个东西存在

  <mappers>
        <mapper class="com.xcode.beens.mapperInterfaces.UserMapper"/>
    </mappers>

好了 一切都配置好了。还有一个问题就是,怎么让MyBatis读取到MyBatis-Config.xml这个配置文件呢?这个配置文件放哪里呢?

我们这里呢,将这个配置文件放在 src 目录下。

新建一个Test类。来看看MyBatis的神奇之处。、

Test.java

package com.xcode.Test;

import java.io.Reader;

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 com.xcode.beens.User;
import com.xcode.beens.mapperInterfaces.UserMapper;

public class Test
{
	private static SqlSessionFactory sqlSessionFactory;
	private static Reader reader;
	public static void main(String[] args) throws Exception
	{
	        //读取配置文件
		reader = Resources.getResourceAsReader("MyBatis-Config.xml");
		//绑定配置文件。
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		
		创建操作数据库的session
		SqlSession session = sqlSessionFactory.openSession();
		
		//通过接口的 class,它会返回这个接口的实例。
		UserMapper userMapper = session.getMapper(UserMapper.class);
		
		//通过调用接口里的定义的方法,就可以达到操作数据库的操作、
		User user = userMapper.selectUserById(1);
		System.out.println(user.getName());
		
		//操作完了之后必须close掉、
		session.close();
	}
}

不知道你们觉得怎么样。反正我是觉得巨方便无比。

当然了,其中还有很多东西没有说。你们可以去看看它的官方文档。反正有中文的,也不怕看不懂、







你可能感兴趣的:(MyBatis学习手记(一)MaBatis入门)