MyBatis學習手記(一)MaBatis入門

MyBatis學習手記一
html

前:MyBatis官方學習(中文)文檔 http://mybatis.github.io/mybatis-3/zh/index.htmljava

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

             連接:https://github.com/mybatis/mybatis-3/releasesgit

            這裏使用的數據庫是MySQL,因此還須要Mysql的驅動包、
github


2、其實MyBatis初學很簡單。可是也是須要依賴一些配置文件。sql

            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>

3、牛逼的地方來了。例如咱們數據庫裏面有User這個表apache

    User表xcode

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

咱們就在咱們項目中新建一個Been  User.javasession

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();
	}
}

不知道大家以爲怎麼樣。反正我是以爲巨方便無比。

固然了,其中還有不少東西沒有說。大家能夠去看看它的官方文檔。反正有中文的,也不怕看不懂、

相關文章
相關標籤/搜索