<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                MiniDao的介紹 === 當前最新版本: 1.6.5 (發布日期:20180604) ### MiniDao產生的初衷? **小故事** > 有一個老項目采用Hibernate持久層,Hibernate雖然智能但是太重同時對復雜SQL支持不足。 這個時候想集成mybatis,但是一個項目既用hibernate又用mybatis 顯得太重。大家一般做法是采用springjdbc來輔助,但是同樣存在另外一個問題,SQL寫在代碼里可讀性差,也沒有邏輯標簽。 所以為了解決這個痛,JEECG采用springjdbc+freemarker做了簡單封裝,出了這么一個輕量級持久層,既支持sql分離,又支持邏輯標簽,同時還支持事務。 ### MiniDao 簡介及特征 MiniDao 是一款輕量級JAVA持久層框架,采用 SpringJdbc + freemarker 實現,具備Mybatis一樣的SQL分離和邏輯標簽能力。 具有以下特征: * O/R mapping不用設置xml,零配置便于維護 * 不需要了解JDBC的知識 * SQL語句和java代碼的分離 * 只需接口定義,無需接口實現 * SQL支持腳本語言(強大腳本語言,freemarker語法) * 支持與hibernate輕量級無縫集成 * 支持自動事務處理和手動事務處理 * 性能優于Mybatis * SQL標簽采用[Freemarker的基本語法](http://blog.csdn.net/zhangdaiscott/article/details/77505453) 技術交流 ----------------------------------- * 作 者: 張代浩 * 論 壇: [www.jeecg.com](http://www.jeecg.com) * 郵 箱: jeecgos@163.com * QQ交流群:① 362385436 ### 接口定義[EmployeeDao.java] @MiniDao public interface EmployeeDao { @Arguments({ "employee"}) @Sql("select * from employee") List<Map<String,Object>> getAll(Employee employee); @Sql("select * from employee where id = :id") Employee get(@Param("id") String id); @Sql("select * from employee where empno = :empno and name = :name") Map getMap(@Param("empno")String empno,@Param("name")String name); @Sql("SELECT count(*) FROM employee") Integer getCount(); int update(@Param("employee") Employee employee); void insert(@Param("employee") Employee employee); @ResultType(Employee.class) public MiniDaoPage<Employee> getAll(@Param("employee") Employee employee,@Param("page") int page,@Param("rows") int rows); } ### SQL文件[EmployeeDao_getAllEmployees.sql] SELECT * FROM employee where 1=1 <#if employee.age ?exists> and age = :employee.age </#if> <#if employee.name ?exists> and name = :employee.name </#if> <#if employee.empno ?exists> and empno = :employee.empno </#if> ###接口和SQL文件對應目錄 ![github](http://www.jeecg.org/data/attachment/forum/201308/18/224051ey14ehqe000iegja.jpg "minidao") ### MiniDao在spring中配置 <!-- MiniDao動態代理類 --> <bean id="miniDaoHandler" class="org.jeecgframework.minidao.factory.MiniDaoBeanScannerConfigurer"> <!-- 是使用什么字母做關鍵字Map的關鍵字 默認值origin 即和sql保持一致,lower小寫(推薦),upper 大寫 --> <property name="keyType" value="lower"></property> <!-- 格式化sql --> <property name="formatSql" value="false"></property> <!-- 輸出sql --> <property name="showSql" value="false"></property> <!-- 數據庫類型 --> <property name="dbType" value="mysql"></property> <!-- dao地址,配置符合spring方式 --> <property name="basePackage" value="examples.dao.*"></property> <!-- 使用的注解,默認是Minidao,推薦 Repository--> <property name="annotation" value="org.springframework.stereotype.Repository"></property> <!-- Minidao攔截器配置 --> <property name="emptyInterceptor" ref="minidaoInterceptor"></property> </bean> ### 測試代碼 public class Client { public static void main(String args[]) { BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); EmployeeDao employeeDao = (EmployeeDao) factory.getBean("employeeDao"); Employee employee = new Employee(); String id = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); employee.setId(id); employee.setEmpno("A001"); employee.setSalary(new BigDecimal(5000)); employee.setBirthday(new Date()); employee.setName("scott"); employee.setAge(25); //調用minidao方法插入 employeeDao.insert(employee); } }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看