• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • MyBatis學習筆記(一)

    標簽: mybatis  持久層框架

    一、MyBatis介紹

    這里寫圖片描述
    ??MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

    二、MyBatis快速入門

    1)創建Java Project或者Java Web Project

    這里寫圖片描述

    2)導入相應的jar包

    這里寫圖片描述

    3)創建數據庫和表(mysql)

    CREATE DATABASE mybatis;
    USE mybatis;
    CREATE TABLE `users` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `USER_ID` varchar(32) DEFAULT NULL,
      `USER_NAME` varchar(32) DEFAULT NULL,
      `NICKNAME` varchar(32) DEFAULT NULL,
      `PASSWORD` varchar(20) DEFAULT NULL,
      `IS_ADMIN` varchar(2) DEFAULT NULL,
      PRIMARY KEY (`ID`)
    );

    4)添加mysql驅動配置文件datasource.properties

    這里寫圖片描述

    dataSource.driverClassName=com.mysql.jdbc.Driver
    dataSource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true
    dataSource.username=root
    dataSource.password=root

    5)添加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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <!-- 配置數據庫連接信息 -->
                <dataSource type="POOLED">
                    <property name="driver" value="${dataSource.driverClassName}" />
                    <property name="url" value="${dataSource.url}" />
                    <property name="username" value="${dataSource.username}" />
                    <property name="password" value="${dataSource.password}" />
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <package name="com.zavierliu.mybatis.demo.dao" />   
        </mappers>
    
    </configuration>

    6)創建表所對應的實體對象User

    package com.zavierliu.mybatis.demo.data;
    
    public class User {
        private Integer id;
        private String userId;
        private String userName;
        private String nickname;
        private String password;
        private String isAdmin;
    
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getUserId() {
            return userId;
        }
        public void setUserId(String userId) {
            this.userId = userId;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getNickname() {
            return nickname;
        }
        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getIsAdmin() {
            return isAdmin;
        }
        public void setIsAdmin(String isAdmin) {
            this.isAdmin = isAdmin;
        }
    
        @Override
        public String toString() {
            return "{" 
                    + "id: " + id 
                    + ", userId: " + userId 
                    + ", userName: " + userName 
                    + ", nickname: " + nickname 
                    + ", password: " + password 
                    + ", actStatus: " + isAdmin + "}";
        }
    }
    

    7)創建dao接口UserMapper.java和操作表的sql映射文件UserMapper.xml

    • UserMapper.java
    package com.zavierliu.mybatis.demo.dao;
    
    import java.util.List;
    import java.util.Map;
    
    import com.zavierliu.mybatis.demo.data.User;
    
    public interface UserMapper {
    
        public Map<String, Object> getUserById(int id);
    
        public int addUser(User user);
    
        public void updateUser(User user);
    
        public void deleteUser(int id);
    
        public List<User> getUserByParam(Map<String, Object> param);
    }
    
    • UserMapper.xml
    <?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">
    
    <mapper namespace="com.zavierliu.mybatis.demo.dao.UserMapper">
    
        <resultMap type="com.zavierliu.mybatis.demo.data.User" id="usermap">
            <id column="id" property="id" />
            <result column="user_id" property="userId" />
            <result column="user_name" property="userName" />
            <result column="nickname" property="nickname" />
            <result column="password" property="password" />
            <result column="is_admin" property="isAdmin" />
        </resultMap> 
    
        <select id="getUserById" parameterType="int" resultType="map">
            SELECT
                id,
                user_id,
                user_name,
                nickname,
                password,
                is_admin
            FROM
                users
            WHERE
                user_id = #{_parameter }
        </select>
    
        <insert id="addUser" parameterType="com.zavierliu.mybatis.demo.data.User" useGeneratedKeys="true" keyProperty="id">
            INSERT INTO
                users 
            (
                user_id,
                user_name,
                nickname,
                password,
                is_admin
            ) VALUES (
                #{userId},
                #{userName},
                #{nickname},
                #{password},
                #{isAdmin}
            )
        </insert>
    
        <update id="updateUser" parameterType="com.zavierliu.mybatis.demo.data.User">
             UPDATE
                users
            <set>
                <if test="userId != null and userId != ''">
                    user_id = #{userId },
                </if>
                <if test="userName != null and userName != ''">
                    user_name = #{userName },
                </if>
                <if test="nickname != null and nickname != ''">
                    nickname = #{nickname },
                </if>
                <if test="password != null and password != ''">
                    password = #{password },
                </if>
                <if test="isAdmin != null and isAdmin != ''">
                    is_admin = #{isAdmin }
                </if>
            </set>
            WHERE
                id = #{id}
        </update>
    
        <delete id="deleteUser" parameterType="int">
            DELETE FROM 
                users 
            WHERE 
                id = #{_parameter }
        </delete>
    
        <select id="getUserByParam" parameterType="map" resultMap="usermap">
            SELECT
                id,
                user_id,
                user_name,
                nickname,
                password,
                is_admin
            FROM
                users
            <where>
                <if test="userName != null and userName != ''">
                    AND user_name LIKE '%${userName}%'
                </if>
                <if test="nickname != null and nickname != ''">
                    AND nickname LIKE '%${nickname}%'
                </if>
                <if test="isAdmin != null and isAdmin != ''">
                    AND is_admin = #{isAdmin }
                </if>
            </where>
        </select>
    
    </mapper>

    8)創建獲取SqlSessionFactory的工具類MyBatisUtil.java

    package com.zavierliu.mybatis.utils;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.Properties;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    public class MyBatisUtil {
    
        private static SqlSessionFactory factory = null;
    
        private MyBatisUtil() {
        }
    
        static {
            Reader reader = null;
            Properties properties = PropertiesUtil.loadProperties(
                    MyBatisUtil.class, "datasource.properties");
            try {
                reader = Resources.getResourceAsReader("mybatis-config.xml");
            } catch (IOException e) {
                throw new RuntimeException(e.getMessage());
            }
            factory = new SqlSessionFactoryBuilder().build(reader, properties);
        }
    
        public static SqlSessionFactory getSqlSessionFactory() {
            return factory;
        }
    }
    

    9)測試文件Main.java

    package test;
    import com.zavierliu.mybatis.demo.data.User;
    import com.zavierliu.mybatis.demo.service.IUserService;
    import com.zavierliu.mybatis.demo.service.impl.UserServiceImpl;
    
    public class Main {
    
        public static void main(String[] args) {
            User user = new User();
            user.setUserId("user1");
            user.setUserName("demo_test");
            user.setNickname("測試帳號");
            user.setIsAdmin("N");
            user.setPassword("****");
    
            IUserService userService = new UserServiceImpl();
            userService.addUser(user);
            System.out.println("新增用戶:" + user);
    
            user.setUserName("demo_update");
            user.setNickname("測試更新");
            userService.updateUser(user);
            System.out.println("更新用戶:" + user);
        }
    
    }
    

    三、完整的文件目錄

    這里寫圖片描述

    四、運行結果

    新增用戶:{id: 7, userId: user1, userName: demo_test, nickname: 測試帳號, password: **, actStatus: N}
    更新用戶:{id: 7, userId: user1, userName: demo_update, nickname: 測試更新, password: **, actStatus: N}

    這里寫圖片描述
    五、源碼下載
    http://download.csdn.net/download/zavierliu/10012835

    版權聲明:本文為ZavierLiu原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/ZavierLiu/article/details/78178108

    智能推薦

    Mybatis學習筆記(一)

    1、環境描述 java版本:1.8 開發工具:idea 2018版 mysql:8.x版本 mybatis:3.4.6版本 lombok mybatis 在開發中最為關鍵的是其 SqlSession 的使用和 mapper 文件的配置。 本文將圍繞它來介紹Mybatis的入門案例。 2、項目結構 2.1 配置文件 在 idea 中,使用maven項目。在 resources 資源文件夾中創建文件夾...

    MyBatis學習筆記(一)

    一、MyBatis介紹   MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記...

    Mybatis學習筆記一

    Mybatis學習筆記一 概述 Mybatis 是一個優秀的基于 java 的持久層框架,它內部封裝了 jdbc,使開發者只需要關注 sql 語句本身,而不需要花費精力去處理加載驅動、創建連接、創建 statement 等繁雜的過程。 mybatis 通過 xml 或注解的方式將要執行的各種 statement 配置起來,并通過 java 對象和 statement 中sql 的動態參數進行映射生...

    MyBatis學習筆記(一)

    1 、對原生態jdbc程序中問題總結 jdbc編程步驟:  1、 加載數據庫驅動  2、 創建并獲取數據庫鏈接  3、 創建jdbc statement對象  4、 設置sql語句  5、 設置sql語句中的參數(使用preparedStatement)  6、 通過statement執行sql并獲取結果  7、 對sql執行結...

    Mybatis學習筆記(一)

    嗷嗷 環境統一 JDK1.8 Mysql5.7 maven3.6.1 簡介 什么是mybatis MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。2013年11月遷移到Github。 iBATIS一詞來源于“internet”和...

    猜你喜歡

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡