一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Spring整合MyBatis(Maven+MySQL)圖文教程詳解(3)

Spring整合MyBatis(Maven+MySQL)圖文教程詳解(3)

2020-05-24 11:59張果 JAVA教程

如果在網速不穩定的情況下,下載包很有可能失敗,可以試試強制項目重新下載;可以使用下載工具將jar包下載后手復制到本地資源庫中。 2.2、準備數據

如果在網速不穩定的情況下,下載包很有可能失敗,可以試試強制項目重新下載;可以使用下載工具將jar包下載后手復制到本地資源庫中。

Spring整合MyBatis(Maven+MySQL)圖文教程詳解

Spring整合MyBatis(Maven+MySQL)圖文教程詳解

 

2.2、準備數據

打開MySQL數據庫,創建一個表,這里以booktypes表為例。

Spring整合MyBatis(Maven+MySQL)圖文教程詳解

sql腳本如下:

 
/*
Navicat MySQL Data Transfer

Source Server         : localhost
Source Server Version : 50536
Source Host           : localhost:3306
Source Database       : db2

Target Server Type    : MYSQL
Target Server Version : 50536
File Encoding         : 65001

Date: 2016-07-04 10:49:56
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `booktypes`
-- ----------------------------
DROP TABLE IF EXISTS `booktypes`;
CREATE TABLE `booktypes` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '類型編號',
  `typeName` varchar(100) NOT NULL COMMENT '類型名稱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of booktypes
-- ----------------------------
INSERT INTO `booktypes` VALUES ('1', '計算機軟件開發');
INSERT INTO `booktypes` VALUES ('2', '計算機網絡工程');
INSERT INTO `booktypes` VALUES ('3', '神話小說');
INSERT INTO `booktypes` VALUES ('4', '科幻小說');
INSERT INTO `booktypes` VALUES ('5', '外語');
INSERT INTO `booktypes` VALUES ('6', '測試類型');
INSERT INTO `booktypes` VALUES ('7', '91');
INSERT INTO `booktypes` VALUES ('8', '92');
INSERT INTO `booktypes` VALUES ('9', '93');
INSERT INTO `booktypes` VALUES ('91', '建筑設計');
INSERT INTO `booktypes` VALUES ('92', '工業設計');
INSERT INTO `booktypes` VALUES ('93', '船舶制造');
 
 

2.3、創建java Bean

在包com.zhangguo.Spring61.entities下添加類BookType類型。

 
package com.zhangguo.Spring61.entities;

/**
 * 圖書類型
 *
 */
public class BookType {
    /**
     * 編號
     */
    private int id;
    /**
     * 類型名
     */
    private String typeName;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
    @Override
    public String toString() {
        return this.getId()+"\t"+this.getTypeName();
    }
}
 
 

2.4、創建實例與表的映射文件

這里用接口+XML的形式完成,BookType數據訪問接口如下:

 
package com.zhangguo.Spring61.mapping;

import java.util.List;

import com.zhangguo.Spring61.entities.BookType;

/**
 * 圖書類型數據訪問接口
 *
 */
public interface BookTypeDAO {
    /*
     * 獲得所有圖書類型
     */
    public List<BookType> getAllBookTypes();
}
 

BookTypeMapper.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.zhangguo.Spring61.mapping.BookTypeDAO">
    <!--id應該是接口中的方法,結果類型如沒有配置別名則應該使用全名稱 -->
    <select id="getAllBookTypes" resultType="BookType">
        select id,typeName from booktypes
    </select>
</mapper>
 
 

2.5、創建MyBatisCfg.xml文件 

MyBatisCfg.xml文件用于配置MyBatis的運行環境,內容如下:

 
<?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>
    <!-- 指定數據庫連接信息的位置 -->
    <properties resource="db.properties"></properties>
    <!--類型別名,默認引入com.zhangguo.Spring61.entities下的所有類 -->
    <typeAliases>
        <package name="com.zhangguo.Spring61.entities"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <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>
    <mappers>
        <!--引入映射文件 -->
        <mapper resource="com/zhangguo/Spring61/mapping/BookTypeMapper.xml" />
    </mappers>
</configuration>
 

因為配置中依賴了db.properties文件,該文件用于指定數據庫的連接信息,內容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db2
username=root
password=root
 

2.6、實現數據訪問功能

為了更加方便的復用MyBatis實現數據訪問不需要頻繁的創建SQLSessionFactory和SQLSession對象,封裝一個MyBatisUtil工具類如下:

 
package com.zhangguo.Spring61.dao;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public abstract class MyBatisUtil {
    
    //GC不理static
    private static SqlSessionFactory factory=null;
    public static SqlSessionFactory getSqlSessionFactory(){
        if(factory==null){
        // 獲得環境配置文件流
        InputStream config = MyBatisUtil.class.getClassLoader().getResourceAsStream("MyBatisCfg.xml");
        // 創建sql會話工廠
        factory = new SqlSessionFactoryBuilder().build(config);
        }
        return factory;
    }
    
    //獲得會話
    public static SqlSession getSession(){
        return getSqlSessionFactory().openSession(true);
    }
    
    /**
     * 獲得得sql會話
     * @param isAutoCommit 是否自動提交,如果為false則需要sqlSession.commit();rollback();
     * @return sql會話
     */
    public static SqlSession getSession(boolean isAutoCommit){
        return getSqlSessionFactory().openSession(isAutoCommit);
    }
    
}
 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人小视频在线免费观看 | 魔法满屋免费观看完整版中文 | 扒开黑女人p大荫蒂老女人 扒开大腿狠狠挺进视频 | 成人伊在线影院 | poronovideos变态极限| 99r视频在线观看 | 亚洲色图第四色 | 国产精品网页 | 第一福利在线导航 | 国产第一页无线好源 | 高清不卡一区二区 | 色就色欧美综合偷拍区a | 亚洲第一天堂无码专区 | 干操视频 | 午夜欧美精品久久久久久久 | 亚洲精品视频观看 | 久久国产乱子伦精品免费不卡 | 四虎影视入口 | 春宵福利网站在线观看 | 美女做又爽又黄又猛 | 性趣用品| 91麻豆精品国产片在线观看 | 99精品久久精品一区二区 | 日韩操片| 91大神在线精品播放 | 国产福利在线观看永久视频 | 香蕉97超级碰碰碰免费公 | 北条麻妃黑人正在播放 | 狠狠澡| 色呦呦在线免费观看 | www日本视频 | 穆挂英风流艳史小说 | 久久人妻少妇嫩草AV无码 | 亚洲精品国产成人中文 | 亚色九九九全国免费视频 | 国产精品午夜性视频网站 | 日剧整部剧护妻狂魔免费观看全集 | 含羞草传媒一天免费看下 | 丝袜老师好湿好紧我要进去了 | 国产精品不卡高清在线观看 | 久久热这里只有 精品 |