mybatis基礎使用

1、下載相關mybatis的包。鏈接
2、把包導入java工程中。
3、配置sqlMapConfig.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>
<!-- 和spring整合後environments配置將廢除 -->
  <environments default="development">
    <environment id="development">
    <!-- 使用jdbc事務管理 -->
      <transactionManager type="JDBC"/>
      <!-- 數據庫連接池 -->
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  
  <!-- mapper的位置 -->
  <mappers>
    <mapper resource="sqlmap/User.xml"/>
  </mappers>
</configuration>

4、創建pojo
pojo類作爲mybatis進行sql映射使用,po類通常與數據庫表對應。
5、sql映射文件
在config下的sqlmap目錄下創建sql映射文件User.xml:
6、加載映射文件
mybatis框架需要加載Mapper.xml映射文件
將users.xml添加在SqlMapConfig.xml。
7、映射文件、編寫sql
8、

1. 創建SqlSessionFactoryBuilder對象
		SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

		// 2. 加載SqlMapConfig.xml配置文件
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");

		// 3. 創建SqlSessionFactory對象
		this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
	}

	@Test
	public void testQueryUserById() throws Exception {
		// 4. 創建SqlSession對象
		SqlSession sqlSession = sqlSessionFactory.openSession();

		// 5. 執行SqlSession對象執行查詢,獲取結果User
		// 第一個參數是User.xml的statement的id,第二個參數是執行sql需要的參數;
		Object user = sqlSession.selectOne("queryUserById", 1);

		// 6. 打印結果
		System.out.println(user);

		// 7. 釋放資源
		sqlSession.close();

9、 #{}和${}
#{}表示一個佔位符號,通過#{}可以實現preparedStatement向佔位符中設置值,自動進行java類型和jdbc類型轉換。#{}可以有效防止sql注入。 #{}可以接收簡單類型值或pojo屬性值。 如果parameterType傳輸單個簡單類型值,#{}括號中可以是value或其它名稱。

sql{}表示拼接sql串,通過{}可以將parameterType 傳入的內容拼接在sql中且不進行jdbc類型轉換, pojoparameterType{}可以接收簡單類型值或pojo屬性值,如果parameterType傳輸單個簡單類型值,{}括號中只能是value。

Mybats解決jdbc編程的問題
1、數據庫連接創建、釋放頻繁造成的系統資源浪費從而影響系統性能,如果使用數據庫連接池可解決此問題。
解決:在sqlMapConfig.xml中配置數據連接池,使用連接池管理數據庫連接。
2、sql語句寫在代碼中造成不易維護,實際應用sql變化的可能較大,sql變動需要改變java代碼
解決:將sql語句配置在xxxmapper.xml文件中與java代碼分離。
3、向sql語句傳參數麻煩,因爲sql語句的where條件不一定,可能多也可能少,佔位符需要和參數一一對應。
解決:mybatis自動將java對象映射至sql語句,通過statement中的parameterType定義輸入參數的類型。
4、對結果集解決麻煩,sql變化導致解析代碼變化,且解析前需要遍歷,如果能將數據庫記錄封裝成pojo對象解析比較方便。
解決:mybatis自定將sql執行結果映射至java對象,通過statement中的resultType定義輸出結果類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章