生活随笔
收集整理的這篇文章主要介紹了
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;????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";????????Reader?reader?=?Resources.getResourceAsReader(resource);????????SqlSessionFactory?sessionFactory?=?new?SqlSessionFactoryBuilder()??????????????????.build(reader);????????SqlSession?session?=?sessionFactory.openSession();????????new?Test1().insert(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();??????}????????????????public?void?delete(SqlSession?session){??????????????????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();????????????????}????????????????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();??????}??????????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)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。