亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

第一個MyBatis程序

2019-11-14 20:52:29
字體:
來源:轉載
供稿:網友
第一個MyBatis程序

最近研究了一些MyBatis技術,雖然工作中還未用到,但是覺得了解一下也是不錯的.這里記錄了第一個簡單的Demo程序,防止自己忘記.

第一步需要配置Mybatis-config.xml文件.注意:這里使用了2種方式對實體類進行了映射.在<Mapper>中,第一個User對象用XMl格式進行映射,第二個Category用注解CategoryMappper格式進行映射.

<?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="jdbc.properties" ></properties>    <!-- <typeAliases>        <package name="com.mybatis02.model"/>    </typeAliases> -->    <environments default="devEnvironment">        <environment id="devEnvironment">            <transactionManager type="JDBC"></transactionManager>            <dataSource type="POOLED">                <property name="driver" value="${dirver}"/>                <property name="url" value="${url}"/>                <property name="username" value="${username}"/>                <property name="passWord" value="${password}"/>            </dataSource>        </environment>    </environments>    <mappers>        <!-- 利用XML格式對User對象進行映射 -->        <mapper resource="com/mybatis02/model/User.xml"/>        <!-- 用注解模式對Category進行映射 -->        <mapper class="com.mybatis02.mapper.CategoryMapper"/>    </mappers></configuration>

第二步對mybatis-config.xml進行解析

public class MyBatisUtil {    private static SqlsessionFactory factory;    static{        try {            InputStream in = Resources.class.getResourceAsStream("mybatis-config.xml");            factory = new SqlSessionFactoryBuilder().build(in);        } catch (Exception e) {            e.printStackTrace();        }    }        public static SqlSession createSession(){        return factory.openSession();    }        public static void closeSession(SqlSession session){        if (session != null) {            session.close();        }    }}

下面分2中方式,對xml格式和注解方式分別進行介紹:

XML格式:

1.1.創建實體類User(這里省略了get和set方法)

public class User {    private int id;    private String username;    private String password;    private String nickname;    private int type;    private List<Address> addresses;    ...}

1.2.創建User對象的xml映射文件.這里需要注意:namespace屬性,需要配置User類的全路徑.定義了一個id為add的Insert操作.其參數類型(parameterType)為一個User對象

<?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.mybatis02.model.User">    <insert id="add" parameterType="com.mybatis02.model.User">        insert t_user(id,username,password,nickname,type)        values(#{id},#{username},#{password},#{nickname},#{type})    </insert></mapper>

1.3.對XML映射方式進行測試

    @Test    public void testAdd() {        // 1.創建Mybatis配置文件輸入流        InputStream in = null;        try {            in = Resources.getResourceAsStream("mybatis-config.xml");        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 2.創建SqlSessionFactory        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);        // 3.創建SQlSession        SqlSession session = factory.openSession();        // 4.調用UserMapper文件,將對象插入數據庫(在調用文件之前,需要將mapper文件加入到mybatis-config.xml中)        User user = new User();        user.setId(8);        user.setUsername("張飛");        user.setPassword("123");        user.setNickname("張三");        user.setType(1);        session.insert("com.mybatis02.model.User.add", user);        session.commit();        session.close();    }

對注解映射方式進行demo的編寫.

2.1.同樣創建實體類

public class Category {    private int id;    private String name;        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;    }}

2.2 創建CategoryMapper映射類 創建了一個add方法,在方法上添加Insert操作,執行對應的sql.

這個文件在第一步中的mybatis-config.xml中引入.

 <mapper class="com.mybatis02.mapper.CategoryMapper"/>
public interface CategoryMapper {    @Insert("insert into t_category(id,name) value (#{id},#{name})")    public void add(Category category);    }

2.3 測試

@Test    public void testCategory() {        // 1.創建Mybatis配置文件輸入流        InputStream in = null;        try {            in = Resources.getResourceAsStream("mybatis-config.xml");        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 2.創建SqlSessionFactory        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);        // 3.創建SQlSession        SqlSession session = factory.openSession();        // 4.調用CategoryMapper接口,將對象插入數據庫(在調用文件之前,需要將mapper文件加入到mybatis-config.xml中)        Category category = new Category();        category.setId(1);        category.setName("衣服");        session.insert("com.mybatis02.mapper.CategoryMapper.add", category);        session.commit();        session.close();    }

感觸:最開始寫demo,報了一個錯誤,原來我把xml方式映射和注解方式映射弄混了.兩種方式各取一半,報了各種錯誤.

以后遇到問題,需要一步一步的推敲.保持邏輯的清晰,才能更加準確的定位錯誤,及時發現和修正錯誤.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲在线视频| 欧美在线一级va免费观看| 在线播放国产精品| 国产z一区二区三区| 欧美亚洲国产另类| 欧美国产视频日韩| 视频一区视频二区国产精品| 亚洲国产小视频在线观看| 一区国产精品视频| 欧美超级乱淫片喷水| 欧美黑人一级爽快片淫片高清| 国产午夜精品理论片a级探花| 欧美日本高清视频| 日韩欧美在线第一页| 欧美综合一区第一页| 亚洲精品动漫久久久久| 91免费视频网站| 曰本色欧美视频在线| 日韩国产高清视频在线| 日韩欧美国产一区二区| 日韩电影免费观看在线观看| 亚洲综合一区二区不卡| 日韩免费电影在线观看| 操人视频在线观看欧美| 青青草原一区二区| 国产综合在线看| 欧美成人sm免费视频| 精品国产一区二区三区久久久| 91在线精品视频| 中文在线资源观看视频网站免费不卡| 亚洲最大在线视频| 亚洲欧美成人一区二区在线电影| 欧美视频在线视频| 日韩免费观看网站| 亚洲欧美日韩天堂| 在线观看日韩欧美| 久久国产精品免费视频| 久久人人看视频| 亚洲图片在线综合| 亚洲欧美国产另类| 中文字幕自拍vr一区二区三区| 国产欧美日韩中文字幕| 日韩av观看网址| 日韩美女在线播放| 色小说视频一区| 中文字幕日韩精品在线观看| 疯狂欧美牲乱大交777| 国产精品免费一区豆花| 亚洲国产高清福利视频| 亚洲图片在线综合| 俺去亚洲欧洲欧美日韩| 国产成人精品免费视频| 国产精品高潮粉嫩av| 性欧美暴力猛交69hd| 中文精品99久久国产香蕉| 成人有码视频在线播放| 国产99在线|中文| 国产欧美日韩精品丝袜高跟鞋| 奇米一区二区三区四区久久| 久久久精品国产网站| 成人在线激情视频| www.美女亚洲精品| 欧美一区二区大胆人体摄影专业网站| 18久久久久久| 欧美性视频网站| 国产婷婷97碰碰久久人人蜜臀| 亚洲成人黄色在线| 欧美激情视频给我| 日韩欧美成人精品| 欧美一区二区三区图| 亚洲精品电影久久久| 91av在线免费观看视频| 国产精品夜色7777狼人| 91久久精品美女高潮| 久久久久久国产精品美女| 亚洲男人天堂久| 欧美富婆性猛交| 成人淫片在线看| 久久躁日日躁aaaaxxxx| 国产亚洲激情在线| 九九九久久国产免费| 欧美精品video| 国产午夜精品视频免费不卡69堂| 国产亚洲欧洲在线| 最近免费中文字幕视频2019| 国产精品视频26uuu| 中文字幕欧美视频在线| 国内精品美女av在线播放| 欧美韩日一区二区| 色偷偷亚洲男人天堂| 国产欧美一区二区三区在线| 在线色欧美三级视频| 日韩av网址在线| 亚洲女人初尝黑人巨大| 久久国产天堂福利天堂| 久久久久久久久国产| 亚洲精品免费av| 欧美高清视频在线| 色视频www在线播放国产成人| 在线看欧美日韩| 91中文字幕在线观看| 高清亚洲成在人网站天堂| 国产精品视频1区| 欧美成人午夜免费视在线看片| 亚洲欧美日韩中文在线| 欧美精品成人在线| 亚洲欧洲视频在线| 超碰精品一区二区三区乱码| 亚洲第一男人av| 日韩禁在线播放| 精品久久久久久久久中文字幕| 久99久在线视频| 亚洲自拍偷拍福利| 亚洲xxx大片| 中文字幕av一区中文字幕天堂| 91在线观看免费| 亚洲午夜女主播在线直播| 国产经典一区二区| 欧美日韩中文字幕综合视频| 国产综合久久久久久| 国产婷婷色综合av蜜臀av| 亚洲aa中文字幕| 久久乐国产精品| 欧美视频不卡中文| 日韩中文字幕在线免费观看| 日本成人在线视频网址| 国产美女精品视频| 亚洲国产精品久久久| 欧美高清视频一区二区| 精品五月天久久| 国产日韩综合一区二区性色av| 日韩激情第一页| 国产国语videosex另类| 国产精品91免费在线| 亚洲在线免费视频| 欧美一级成年大片在线观看| 欧美丝袜一区二区三区| 欧美精品福利在线| 国产成人免费av| 国产欧美精品一区二区三区-老狼| 欧美黑人巨大xxx极品| 在线免费看av不卡| 亚洲色图欧美制服丝袜另类第一页| 日韩动漫免费观看电视剧高清| 欧美理论电影在线播放| 久久久午夜视频| 久久久午夜视频| 欧美日韩国产成人在线观看| 成人亚洲综合色就1024| 国产精品夜色7777狼人| 国产999精品久久久| 国产精品青青在线观看爽香蕉| 亚洲男人第一av网站| 最近2019年日本中文免费字幕| 伊人伊成久久人综合网站| 欧美性xxxx在线播放| 欧美日韩中文字幕综合视频| 国产不卡av在线| 欧美乱大交做爰xxxⅹ性3| 综合136福利视频在线| 日本人成精品视频在线| 欧美成aaa人片免费看| 亚洲成人久久一区| 欧美日韩色婷婷|