日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis_helloword(1)

發布時間:2025/6/17 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis_helloword(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘錄自:http://blog.csdn.net/y172158950/article/details/16979391

新的項目中用到mybatis,雖然不用自己寫ORM的代碼,但是借這個機會,學習一下。

本章目標:如題,helloWorld。

方法:在CSDN上下載一個demo,簡單修改,能跑起來就OK。

1. 環境

? a)用到的jar:mybatis-3.0.5.jar ,MySQL-connector-java-5.0.8-bin.jar (只有一個jar,是不是很簡單)

? b)mysql

? c)demo下載路徑:http://download.csdn.net/detail/lihonghua168/3579586#comment

2.demo代碼目錄:

? a)configuration.xml :mysql連接配置;基本就2塊,一個是數據庫連接配置,二是映射實體,相關映射文件。
[html]?view plaincopy
  • <?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>??
  • ????<typeAliases>??
  • ????<!--?映射的實體?-->??
  • ????????<typeAlias?type="com.test.Goods"/>??
  • ????</typeAliases>??
  • ????<environments?default="development">??
  • ????????<environment?id="development">??
  • ????????????<transactionManager?type="JDBC"></transactionManager>??
  • ????????????<dataSource?type="POOLED">??
  • ????????????????<property?name="driver"??
  • ????????????????????value="com.mysql.jdbc.Driver"?/>??
  • ????????????????<property?name="url"??
  • ????????????????????value="jdbc:mysql://127.0.0.1:3306/test"?/>??
  • ????????????????<property?name="username"?value="root"?/>??
  • ????????????????<property?name="password"?value="root"?/>??
  • ????????????</dataSource>??
  • ????????</environment>??
  • ????</environments>??
  • ????<mappers>??
  • ????????<!--?數據連接成功后執行的對應實體映射文件數據庫語句?-->??
  • ????????<mapper?resource="com/test/Mapper.xml"?/>??
  • ????</mappers>??
  • </configuration>??
  • ? b)Mapper.xml :sql語句配置文件;sql語句放配置文件,作用不多說,復用。
    [html]?view plaincopy
  • <?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.test.Mapper">??
  • ????<select?id="selectGood"?parameterType="int"?resultType="Goods">??
  • ????????select?*?from?test?where?id?=#{id}??
  • ????</select>??
  • ????<insert?id="insertGood"?parameterType="com.test.Goods"?useGeneratedKeys="true"?keyProperty="id"><!--?后面兩個表示主鍵自動生成的?-->??
  • ????????insert?into?test?(cateId?,?name?,?password?,?price?,?description?,?orderNo?,?updateTime)?values(#{cateId}?,?#{name}?,?#{password}?,?#{price}?,?#{description}?,?#{orderNo}?,?#{updateTime});??
  • ????</insert>??
  • ????<delete?id="deleteGood"?parameterType="int">??
  • ????????delete?from?test?where?id=#{id}??
  • ????</delete>??
  • ????<update?id="updateGood"?parameterType="com.test.Goods">??
  • ????????update?test?set?name=#{name},password=#{password},description=#{description},updateTime=#{updateTime}?where?id=#{id}??
  • ????</update>??
  • </mapper>??
  • ? c)Goods.java :結果集與表映射類;和hibernate不同,沒有哪里寫表與實體的映射關系(存疑)。
    [java]?view plaincopy
  • package?com.test;??
  • import?java.util.Date;??
  • ??
  • /**?
  • ?*?實體,作為映射時的數據,所以所有字段的名稱都必須和數據庫里面的一樣,不管什么數據庫?
  • ?*?
  • ?*對應數據庫表:?
  • ?create?table?test.test?(?
  • ????????????id?bigint(10)?primary?key?AUTO_INCREMENT,?
  • ????????????cateId?varchar(100),?
  • ????????????name?varchar(100),?
  • ????????????password?varchar(100),?
  • ????????????price?double,?
  • ????????????description?varchar(100),?
  • ????????????orderNo?int,?
  • ????????????updateTime?datetime?
  • ??);?
  • ?*/??
  • public?class?Goods?{??
  • ????private?long?id;??
  • ????private?String?cateId;??
  • ????private?String?name;??
  • ????private?String?password;??
  • ????private?double?price;??
  • ????private?String?description;??
  • ????private?int?orderNo;??
  • ????private?Date?updateTime;??
  • ??
  • ????public?String?getCateId()?{??
  • ????????return?cateId;??
  • ????}??
  • ??
  • ????public?long?getId()?{??
  • ????????return?id;??
  • ????}??
  • ??
  • ????public?void?setId(long?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ??
  • ????public?void?setCateId(String?cateId)?{??
  • ????????this.cateId?=?cateId;??
  • ????}??
  • ??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ??
  • ????public?double?getPrice()?{??
  • ????????return?price;??
  • ????}??
  • ??
  • ????public?void?setPrice(double?price)?{??
  • ????????this.price?=?price;??
  • ????}??
  • ??
  • ????public?String?getDescription()?{??
  • ????????return?description;??
  • ????}??
  • ??
  • ????public?void?setDescription(String?description)?{??
  • ????????this.description?=?description;??
  • ????}??
  • ??
  • ????public?int?getOrderNo()?{??
  • ????????return?orderNo;??
  • ????}??
  • ??
  • ????public?void?setOrderNo(int?orderNo)?{??
  • ????????this.orderNo?=?orderNo;??
  • ????}??
  • ??
  • ????public?Date?getUpdateTime()?{??
  • ????????return?updateTime;??
  • ????}??
  • ??
  • ????public?void?setUpdateTime(Date?updateTime)?{??
  • ????????this.updateTime?=?updateTime;??
  • ????}??
  • ??
  • ????public?String?getPassword()?{??
  • ????????return?password;??
  • ????}??
  • ??
  • ????public?void?setPassword(String?password)?{??
  • ????????this.password?=?password;??
  • ????}??
  • }??
  • d)Test1.java :dao類,測試類
    [java]?view plaincopy
  • package?com.test;??
  • ??
  • import?java.io.IOException;??
  • import?java.io.Reader;??
  • import?java.util.Date;??
  • ??
  • import?org.apache.ibatis.io.Resources;??
  • import?org.apache.ibatis.session.SqlSession;??
  • import?org.apache.ibatis.session.SqlSessionFactory;??
  • import?org.apache.ibatis.session.SqlSessionFactoryBuilder;??
  • ??
  • public?class?Test1{??
  • ????public?static?void?main(String?args[])?throws?IOException?{??
  • ????????String?resource?=?"com/test/configuration.xml";//獲得xml(Mybatis)數據庫連接的連接??
  • ????????Reader?reader?=?Resources.getResourceAsReader(resource);//讀取里面的文件??
  • ????????SqlSessionFactory?sessionFactory?=?new?SqlSessionFactoryBuilder()??
  • ????????????????.build(reader);//創建session工廠??
  • ????????SqlSession?session?=?sessionFactory.openSession();//打開session??
  • ????????new?Test1().insert(session);??
  • ????}??
  • ????/**?
  • ?????*?修改?
  • ?????*?@param?session?
  • ?????*/??
  • ????public?void?update(SqlSession?session){??
  • ????????int?falg=0;??
  • ????????Goods?g=new?Goods();??
  • ????????g.setId(1);??
  • ????????g.setCateId("2");??
  • ????????g.setName("huage");??
  • ????????g.setPassword("huage");??
  • ????????g.setDescription("He?is?me");??
  • ????????g.setUpdateTime(new?Date());??
  • ????????falg=session.update("com.test.Mapper.updateGood",?g);??
  • ????????session.commit();??
  • ????????if(falg==1){??
  • ????????????System.out.println("Data?update?successfully!");??
  • ????????}else{??
  • ????????????System.out.println("Data?update?fail..");??
  • ????????}??
  • ????????session.close();??
  • ????}??
  • ??????
  • ????/**?
  • ?????*?刪除?
  • ?????*?@param?session?
  • ?????*/??
  • ????public?void?delete(SqlSession?session){??
  • ????????//session.delete("1");??
  • ????????int?falg=0;??
  • ????????falg=session.delete("com.test.Mapper.deleteGood",?1);??
  • ????????session.commit();??
  • ????????if(falg==1){??
  • ????????????System.out.println("Data?delete?successfully!");??
  • ????????}else{??
  • ????????????System.out.println("Data?dalete?fail..");??
  • ????????}??
  • ????????session.close();??
  • ??????????
  • ????}??
  • ??????
  • ????/**?
  • ?????*?插入數據?
  • ?????*?@param?session?
  • ?????*/??
  • ????public?void?insert(SqlSession?session){??
  • ????????Goods?g=new?Goods();??
  • ????????g.setCateId("2");??
  • ????????g.setName("huage");??
  • ????????g.setPassword("huage");??
  • ????????g.setPrice(5);??
  • ????????g.setDescription("He?is?me");??
  • ????????g.setOrderNo(2);??
  • ????????g.setUpdateTime(new?Date());??
  • ????????int?flag=0;??
  • ????????flag=session.insert("com.test.Mapper.insertGood",g);??
  • ????????session.commit();//一定要提交才能插入數據??
  • ????????if(flag==1){??
  • ????????????System.out.println("Data?inserted?successfully!");??
  • ????????}else{??
  • ????????????System.out.println("Data?inserted?fails!");??
  • ????????}??
  • ????????session.close();??
  • ????}??
  • ????/**?
  • ?????*?查詢??
  • ?????*?@param?session?
  • ?????*/??
  • ????public?void?select(SqlSession?session){??
  • ????????try?{??
  • ????????????Goods?goods?=?(Goods)?session.selectOne("com.test.Mapper.selectGood",?1);//執行數據操作??
  • ??????????????
  • ????????????System.out.println("good?name?is?:?"?+?goods.getName());??
  • ????????????System.out.println("description?:="+goods.getDescription());??
  • ????????????System.out.println("orderNo?:="+goods.getOrderNo());??
  • ????????????System.out.println("price?:="+goods.getPrice());??
  • ????????????System.out.println("updateTiem?:="+goods.getUpdateTime());??
  • ????????????System.out.println("id?:="+goods.getId());??
  • ????????????System.out.println("password?:="+goods.getPassword());??
  • ????????????System.out.println("cateid?:="+goods.getCateId());??
  • ????????}?catch?(Exception?e)?{???
  • ????????????e.printStackTrace();??
  • ????????}?finally?{??
  • ????????????session.close();??
  • ????????}??
  • ????}??
  • }??
  • ?e)Test1.java流程分析

    ??? i. 通過Reader類讀取configuration.xml類容,獲取數據庫連接配置及相關實體類、sql語句配置信息。

    ??? ii. 依據Reader的信息創建SqlSessionFactory。(這2步在實際工程中調用一次即可)

    ??? iii. 創建SqlSession,相當于JDBC的Connection

    ??? iv. insert數據:封裝了sql語句,封裝了映射過程(update,remove,select過程類似)

    ???????? 1)封裝Goods實體。

    ???????? 2)調用session.insert方法:2個參數,"com.test.Mapper.insertGood“,去Mapper.xml找下,insert語句已經寫好了;g,實體

    ???????? 3)commit,close連接。

    ? f)數據庫結果

    轉載于:https://www.cnblogs.com/haimishasha/p/5710615.html

    總結

    以上是生活随笔為你收集整理的mybatis_helloword(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。