MyBatis MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將介面和 Java 的 POJOs(Plain Old ...
MyBatis
MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。
搭建MyBatis
第一步:先創建一個項目,平常的Java project就行,項目結構先看看
第二步:導入相關的jar包(可以上官網下,開源的):
- mybatis-3.4.4.jar MyBatis的jar包
- mysql-connector-java-5.1.13-bin.jar Mysql的jar包
第三步:編寫一個配置文件。是一個XML文件mybatis-config.xml,位置放在src下
<?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://localhost:3306/mobile"/> <property name="username" value="zhou"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/entity/UserMapper.xml"/> </mappers> </configuration>
有關MyBatis中xml文件的屬性說明:
<!-- 配置文件的根元素 --> <configuration> <!-- 屬性:定義配置外在化 --> <properties></properties> <!-- 設置:定義mybatis的一些全局性設置 --> <settings> <!-- 具體的參數名和參數值 --> <setting name="" value=""/> </settings> <!-- 類型名稱:為一些類定義別名 --> <typeAliases></typeAliases> <!-- 類型處理器:定義Java類型與資料庫中的數據類型之間的轉換關係 --> <typeHandlers></typeHandlers> <!-- 對象工廠 --> <objectFactory type=""></objectFactory> <!-- 插件:mybatis的插件,插件可以修改mybatis的內部運行規則 --> <plugins> <plugin interceptor=""></plugin> </plugins> <!-- 環境:配置mybatis的環境 --> <environments default=""> <!-- 環境變數:可以配置多個環境變數,比如使用多數據源時,就需要配置多個環境變數 --> <environment id=""> <!-- 事務管理器 --> <transactionManager type=""></transactionManager> <!-- 數據源 --> <dataSource type=""></dataSource> </environment> </environments> <!-- 資料庫廠商標識 --> <databaseIdProvider type=""></databaseIdProvider> <!-- 映射器:指定映射文件或者映射類 --> <mappers></mappers> </configuration>
第四步:創建實體類,這個不用多說了,正常創建就ok
第五步:創建實體類的mapper映射xml文件,位置跟實體類同級,是對實體類的一些操作,在我認為就是配置了sql語句的趕腳,再去方法里調一下
<?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"> <!-- namespace可以不加xml尾碼 --> <mapper namespace="com.entity.UserMapper"> <!-- 單個對象查詢 --> <select id="selectUser" parameterType="int" resultType="com.entity.User"> select * from user where id = #{id} </select> <!--查詢列表 --> <resultMap id="userList" type="com.entity.User"> <result property="id" column="id" /> <result property="username" column="username"/> <result property="password" column="password"/> </resultMap> <select id="selectAll" resultMap="userList"> select * from user </select> <!--插入數據 --> <insert id="insert" > insert into User (username,password) values(#{username},#{password}) </insert> <!--更新數據 --> <update id="update"> update User set username = #{username},password = #{password} where id = #{id} </update> <!--刪除數據 --> <delete id="delete"> delete from User where id = #{id} </delete> </mapper>
實體類映射的屬性說明:先看前幾個後面的遇到再說,百度就可以
第六步:編寫一下測試類,測試一下你搭建的是否有用
package com.test; import java.io.IOException; import java.io.InputStream; import java.util.List; 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.entity.User; /** * * @author 堅持到你GL * */ public class Test { private static SqlSession session=null; public static SqlSession mySession() { //你的MyBatis的配置文件地址 String resource = "mybatis-config.xml"; InputStream inputStream=null; try { //IO解析xml文件 inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //創建一個SqlSessionFactoryBuilder對象,獲得SqlSessionFactory 的實例 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //開啟SqlSession session=sqlSessionFactory.openSession(); return session; } private static void select(){ //selectUser是實體類映射文件的中設置的id User user=mySession().selectOne("selectUser",2); System.out.println(user); } private static void selectAll() { List<User> list=mySession().selectList("selectAll"); for (User user : list) { System.out.println(user); } } private static void insert() { User insertuser=new User("zhou","123456"); mySession().insert("insert",insertuser); session.commit(); } private static void update() { User updateuser =new User(9,"admin","admin"); mySession().update("update", updateuser); session.commit(); } private static void delect() { mySession().delete("delete", 10); session.commit(); } public static void main(String[] args) { selectAll(); } }
小項目微服務簡單的開發,運用MyBatis是非常不錯的選擇
【版本聲明】本文為博主原創文章,轉載請註明出處