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(); } }
不知道大家以爲怎麼樣。反正我是以爲巨方便無比。
固然了,其中還有不少東西沒有說。大家能夠去看看它的官方文檔。反正有中文的,也不怕看不懂、