分享

Mybatis的搭建与使用

 苏氏IT馆 2015-12-30

Hibernate是非常完美的一个持久性框架,但是由于其考虑到各种功能和通用性,导致这个框架太大了,另外就是封装的太好了导致自主性比较小。所以Mybatis受到很多公司的欢迎。Mybatis以前叫做ibatis,用法稍微有点区别,在这里我用的是Mybatis 3

1.去官网下载Mybatis的Jar包 http://mybatis./

2.配置SqlMapConfig.xml文件

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration  
  3. PUBLIC "-////DTD Config 3.0//EN"  
  4. "http:///dtd/mybatis-3-config.dtd">  
  5. <configuration>  
  6.     <!-- 给bean取别名用在mapping文件中 -->  
  7.     <typeAliases>  
  8.         <typeAlias type="com.lubby.bean.Worker" alias="Worker" />  
  9.     </typeAliases>  
  10.     <environments default="development">  
  11.         <environment id="development">  
  12.             <!-- 使用JDBC的事务管理 -->  
  13.             <transactionManager type="JDBC" />  
  14.             <!-- 数据源 -->  
  15.             <dataSource type="POOLED">  
  16.                 <property name="driver" value="org.postgresql.Driver" />  
  17.                 <property name="url" value="jdbc:postgresql://127.0.0.1:5432/lubby" />  
  18.                 <property name="username" value="admin" />  
  19.                 <property name="password" value="admin" />  
  20.             </dataSource>  
  21.         </environment>  
  22.     </environments>  
  23.     <!-- 这里可以写多个实体的映射文件 -->  
  24.     <mappers>  
  25.         <mapper resource="com/lubby/bean/WorkerSqlMap.xml" />  
  26.     </mappers>  
  27. </configuration>  

3.worker bean

  1. package com.lubby.bean;  
  2. public class Worker {  
  3.     private String id;  
  4.     private String name;  
  5.     int age;  
  6.     public Worker() {  
  7.         super();  
  8.     }  
  9.     public Worker(String id, String name, int age) {  
  10.         super();  
  11.         this.id = id;  
  12.         this.name = name;  
  13.         this.age = age;  
  14.     }  
  15.     public String getId() {  
  16.         return id;  
  17.     }  
  18.     public void setId(String id) {  
  19.         this.id = id;  
  20.     }  
  21.     public String getName() {  
  22.         return name;  
  23.     }  
  24.     public void setName(String name) {  
  25.         this.name = name;  
  26.     }  
  27.     public int getAge() {  
  28.         return age;  
  29.     }  
  30.     public void setAge(int age) {  
  31.         this.age = age;  
  32.     }  
  33.     @Override  
  34.     public String toString() {  
  35.         return "Worker [id=" + id + ", name=" + name + ", age=" + age + "]";  
  36.     }  
  37. }  

3.bean的mapping配置文件  WorkerSqlMap.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3. PUBLIC "-////DTD Mapper 3.0//EN"  
  4. "http:///dtd/mybatis-3-mapper.dtd">  
  5.   
  6. <!-- namespace用于java代码调用时识别指定xml的mapper文件 -->  
  7. <mapper namespace="com.lubby.bean">  
  8.     <sql id="field">  
  9.         id,name,age  
  10.     </sql>  
  11.     <select id="getAllWorker" resultType="Worker">  
  12.         select  
  13.         <include refid="field" />  
  14.         from worker  
  15.     </select>  
  16.     <select id="getWorkerById" resultType="Worker">  
  17.         select  
  18.         <include refid="field" />  
  19.         from worker where  
  20.         id= #{id}  
  21.     </select>  
  22.     <select id="getWorkerByName" resultType="Worker">  
  23.         select  
  24.         <include refid="field" />  
  25.         from worker where name like '%'||#{name}||'%'  
  26.     </select>  
  27.   
  28.     <insert id="addWorker">  
  29.         insert into worker (  
  30.         <include refid="field" />  
  31.         ) values(#{id},#{name},#{age})  
  32.     </insert>  
  33.   
  34.     <update id="updateWorker">  
  35.         update worker set name=#{name} ,age=#{age} where  
  36.         id=#{id}  
  37.     </update>  
  38.   
  39.     <delete id="deleteWorkerById">  
  40.     delete from worker where id=#{id};  
  41.     </delete>  
  42. </mapper>  
4.在主函数中使用mybatis

  1. package com.lubby.test;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.Reader;  
  5. import java.util.List;  
  6.   
  7. import org.apache.ibatis.io.Resources;  
  8. import org.apache.ibatis.session.SqlSession;  
  9. import org.apache.ibatis.session.SqlSessionFactory;  
  10. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  11.   
  12. import com.lubby.bean.Worker;  
  13.   
  14. public class Test {  
  15.     public static void main(String[] args) {  
  16.         SqlSessionFactory factory = null;  
  17.         try {  
  18.             Reader reader = Resources.getResourceAsReader("com/lubby/config/SqlMapConfig.xml");  
  19.             factory = new SqlSessionFactoryBuilder().build(reader);  
  20.   
  21.         } catch (IOException e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.   
  25.         SqlSession session = factory.openSession();  
  26.   
  27.         Worker worker = new Worker("003", "Join", 100);  
  28.         //session.insert("com.lubby.bean.addWorker", worker);  
  29.         //session.delete("com.lubby.bean.deleteWorkerById", "005");  
  30.         //session.commit();  
  31.         List<Worker> list = session.selectList("com.lubby.bean.getAllWorker");  
  32.         System.out.println(session.selectOne("com.lubby.bean.getWorkerById", "001"));  
  33.         System.out.println(session.update("com.lubby.bean.updateWorker", worker));  
  34.         System.out.println(session.delete("com.lubby.bean.deleteWorkerById", "004"));  
  35.         session.commit();  
  36.         System.out.println(session.selectList("com.lubby.bean.getWorkerByName", "J"));  
  37.         System.out.println(list);  
  38.     }  
  39.   
  40. }  





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多