`
MauerSu
  • 浏览: 533899 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

iBatis入门

 
阅读更多

源:http://xdwangiflytek.iteye.com/blog/1332520#

评:

iBatis 简介:

iBatis apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了。

官网为:http://www.mybatis.org/

 

搭建iBatis 开发环境:

1 、导入相关的jar 包,ibatis-2.3.0.677.jarmysql-connector-java-5.1.6-bin.jar

2 、编写配置文件:

Jdbc 连接的属性文件

总配置文件, SqlMapConfig.xml

关于每个实体的映射文件(Map 文件)

 

Demo

Student.java:

Java代码  收藏代码
  1. package com.iflytek.entity;  
  2.   
  3. import java.sql.Date;  
  4.   
  5. /** 
  6.  * @author xudongwang 2011-12-31 
  7.  *  
  8.  *         Email:xdwangiflytek@gmail.com 
  9.  *  
  10.  */  
  11. public class Student {  
  12.     // 注意这里需要保证有一个无参构造方法,因为包括Hibernate在内的映射都是使用反射的,如果没有无参构造可能会出现问题  
  13.     private int id;  
  14.     private String name;  
  15.     private Date birth;  
  16.     private float score;  
  17.   
  18.     public int getId() {  
  19.         return id;  
  20.     }  
  21.   
  22.     public void setId(int id) {  
  23.         this.id = id;  
  24.     }  
  25.   
  26.     public String getName() {  
  27.         return name;  
  28.     }  
  29.   
  30.     public void setName(String name) {  
  31.         this.name = name;  
  32.     }  
  33.   
  34.     public Date getBirth() {  
  35.         return birth;  
  36.     }  
  37.   
  38.     public void setBirth(Date birth) {  
  39.         this.birth = birth;  
  40.     }  
  41.   
  42.     public float getScore() {  
  43.         return score;  
  44.     }  
  45.   
  46.     public void setScore(float score) {  
  47.         this.score = score;  
  48.     }  
  49.   
  50.     @Override  
  51.     public String toString() {  
  52.         return "id=" + id + "\tname=" + name + "\tmajor=" + birth + "\tscore="  
  53.                 + score + "\n";  
  54.     }  
  55.   
  56. }  

 

SqlMap.properties

Properties代码  收藏代码
  1. driver=com.mysql.jdbc.Driver  
  2. url=jdbc:mysql://localhost:3306/ibatis  
  3. username=root  
  4. password=123  

 

Student.xml

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"  
  3.    "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
  4.   
  5. <sqlMap>  
  6.     <!-- 通过typeAlias使得我们在下面使用Student实体类的时候不需要写包名 -->  
  7.     <typeAlias alias="Student" type="com.iflytek.entity.Student" />  
  8.   
  9.     <!-- 这样以后改了sql,就不需要去改java代码了 -->  
  10.     <!-- id表示select里的sql语句,resultClass表示返回结果的类型 -->  
  11.     <select id="selectAllStudent" resultClass="Student">  
  12.         select * from  
  13.         tbl_student  
  14.     </select>  
  15.   
  16.     <!-- parameterClass表示参数的内容 -->  
  17.     <!-- #表示这是一个外部调用的需要传进的参数,可以理解为占位符 -->  
  18.     <select id="selectStudentById" parameterClass="int" resultClass="Student">  
  19.         select * from tbl_student where id=#id#  
  20.     </select>  
  21.   
  22.     <!-- 注意这里的resultClass类型,使用Student类型取决于queryForList还是queryForObject -->  
  23.     <select id="selectStudentByName" parameterClass="String"  
  24.         resultClass="Student">  
  25.         select name,birth,score from tbl_student where name like  
  26.         '%$name$%'  
  27.     </select>  
  28.   
  29.     <insert id="addStudent" parameterClass="Student">  
  30.         insert into  
  31.         tbl_student(name,birth,score) values  
  32.         (#name#,#birth#,#score#);  
  33.         <selectKey resultClass="int" keyProperty="id">  
  34.             select @@identity as inserted  
  35.             <!-- 这里需要说明一下不同的数据库主键的生成,对各自的数据库有不同的方式: -->  
  36.             <!-- mysql:SELECT LAST_INSERT_ID() AS VALUE -->  
  37.             <!-- mssql:select @@IDENTITY as value -->  
  38.             <!-- oracle:SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL -->  
  39.             <!-- 还有一点需要注意的是不同的数据库生产商生成主键的方式不一样,有些是预先生成 (pre-generate)主键的,如Oracle和PostgreSQL。   
  40.                 有些是事后生成(post-generate)主键的,如MySQL和SQL Server 所以如果是Oracle数据库,则需要将selectKey写在insert之前 -->  
  41.         </selectKey>  
  42.     </insert>  
  43.   
  44.     <delete id="deleteStudentById" parameterClass="int">  
  45.         <!-- #id#里的id可以随意取,但是上面的insert则会有影响,因为上面的name会从Student里的属性里去查找 -->  
  46.         <!-- 我们也可以这样理解,如果有#占位符,则ibatis会调用parameterClass里的属性去赋值 -->  
  47.         delete from tbl_student where id=#id#  
  48.     </delete>  
  49.   
  50.     <update id="updateStudent" parameterClass="Student">  
  51.         update tbl_student set  
  52.         name=#name#,birth=#birth#,score=#score# where id=#id#  
  53.     </update>  
  54.   
  55. </sqlMap>  

 

说明:

如果xml 中没有ibatis 的提示,则window --> Preference--> XML-->XML Catalog---> 点击add

选择uri URI: 请选择本地文件系统上

iBatisDemo1/WebContent/WEB-INF/lib/sql-map-config-2.dtd 文件;

Key Type: 选择Schema Location;

Key: 需要联网的,不建议使用;

 

SqlMapConfig.xml

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"  
  3.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">  
  4.   
  5. <sqlMapConfig>  
  6.     <!-- 引用JDBC属性的配置文件 -->  
  7.     <properties resource="com/iflytek/entity/SqlMap.properties" />  
  8.     <!-- 使用JDBC的事务管理 -->  
  9.     <transactionManager type="JDBC">  
  10.         <!-- 数据源 -->  
  11.         <dataSource type="SIMPLE">  
  12.             <property name="JDBC.Driver" value="${driver}" />  
  13.             <property name="JDBC.ConnectionURL" value="${url}" />  
  14.             <property name="JDBC.Username" value="${username}" />  
  15.             <property name="JDBC.Password" value="${password}" />  
  16.         </dataSource>  
  17.     </transactionManager>  
  18.     <!-- 这里可以写多个实体的映射文件 -->  
  19.     <sqlMap resource="com/iflytek/entity/Student.xml" />  
  20. </sqlMapConfig>  

 

StudentDao

Java代码  收藏代码
  1. package com.iflytek.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.iflytek.entity.Student;  
  6.   
  7. /** 
  8.  * @author xudongwang 2011-12-31 
  9.  *  
  10.  *         Email:xdwangiflytek@gmail.com 
  11.  *  
  12.  */  
  13. public interface StudentDao {  
  14.   
  15.     /** 
  16.      * 添加学生信息 
  17.      *  
  18.      * @param student 
  19.      *            学生实体 
  20.      * @return 返回是否添加成功 
  21.      */  
  22.     public boolean addStudent(Student student);  
  23.   
  24.     /** 
  25.      * 根据学生id删除学生信息 
  26.      *  
  27.      * @param id 
  28.      *            学生id 
  29.      * @return 删除是否成功 
  30.      */  
  31.     public boolean deleteStudentById(int id);  
  32.   
  33.     /** 
  34.      * 更新学生信息 
  35.      *  
  36.      * @param student 
  37.      *            学生实体 
  38.      * @return 更新是否成功 
  39.      */  
  40.     public boolean updateStudent(Student student);  
  41.   
  42.     /** 
  43.      * 查询全部学生信息 
  44.      *  
  45.      * @return 返回学生列表 
  46.      */  
  47.     public List<Student> selectAllStudent();  
  48.   
  49.     /** 
  50.      * 根据学生姓名模糊查询学生信息 
  51.      *  
  52.      * @param name 
  53.      *            学生姓名 
  54.      * @return 学生信息列表 
  55.      */  
  56.     public List<Student> selectStudentByName(String name);  
  57.   
  58.     /** 
  59.      * 根据学生id查询学生信息 
  60.      *  
  61.      * @param id 
  62.      *            学生id 
  63.      * @return 学生对象 
  64.      */  
  65.     public Student selectStudentById(int id);  
  66.   
  67. }  

StudentDaoImpl

Java代码  收藏代码
  1. package com.iflytek.daoimpl;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.Reader;  
  5. import java.sql.SQLException;  
  6. import java.util.List;  
  7.   
  8. import com.ibatis.common.resources.Resources;  
  9. import com.ibatis.sqlmap.client.SqlMapClient;  
  10. import com.ibatis.sqlmap.client.SqlMapClientBuilder;  
  11. import com.iflytek.dao.StudentDao;  
  12. import com.iflytek.entity.Student;  
  13.   
  14. /** 
  15.  * @author xudongwang 2011-12-31 
  16.  *  
  17.  *         Email:xdwangiflytek@gmail.com 
  18.  *  
  19.  */  
  20. public class StudentDaoImpl implements StudentDao {  
  21.   
  22.     private static SqlMapClient sqlMapClient = null;  
  23.   
  24.     // 读取配置文件  
  25.     static {  
  26.         try {  
  27.             Reader reader = Resources  
  28.                     .getResourceAsReader("com/iflytek/entity/SqlMapConfig.xml");  
  29.             sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);  
  30.             reader.close();  
  31.         } catch (IOException e) {  
  32.             e.printStackTrace();  
  33.         }  
  34.     }  
  35.   
  36.     public boolean addStudent(Student student) {  
  37.         Object object = null;  
  38.         boolean flag = false;  
  39.         try {  
  40.             object = sqlMapClient.insert("addStudent", student);  
  41.             System.out.println("添加学生信息的返回值:" + object);  
  42.         } catch (SQLException e) {  
  43.             e.printStackTrace();  
  44.         }  
  45.         if (object != null) {  
  46.             flag = true;  
  47.         }  
  48.         return flag;  
  49.     }  
  50.   
  51.     public boolean deleteStudentById(int id) {  
  52.         boolean flag = false;  
  53.         Object object = null;  
  54.         try {  
  55.             object = sqlMapClient.delete("deleteStudentById", id);  
  56.             System.out.println("删除学生信息的返回值:" + object + ",这里返回的是影响的行数");  
  57.         } catch (SQLException e) {  
  58.             e.printStackTrace();  
  59.         }  
  60.         if (object != null) {  
  61.             flag = true;  
  62.   
  63.         }  
  64.         return flag;  
  65.   
  66.     }  
  67.   
  68.     public boolean updateStudent(Student student) {  
  69.         boolean flag = false;  
  70.         Object object = false;  
  71.         try {  
  72.             object = sqlMapClient.update("updateStudent", student);  
  73.             System.out.println("更新学生信息的返回值:" + object + ",返回影响的行数");  
  74.         } catch (SQLException e) {  
  75.             e.printStackTrace();  
  76.         }  
  77.         if (object != null) {  
  78.             flag = true;  
  79.         }  
  80.         return flag;  
  81.     }  
  82.   
  83.     public List<Student> selectAllStudent() {  
  84.         List<Student> students = null;  
  85.         try {  
  86.             students = sqlMapClient.queryForList("selectAllStudent");  
  87.         } catch (SQLException e) {  
  88.             e.printStackTrace();  
  89.         }  
  90.         return students;  
  91.     }  
  92.   
  93.     public List<Student> selectStudentByName(String name) {  
  94.         List<Student> students = null;  
  95.         try {  
  96.             students = sqlMapClient.queryForList("selectStudentByName",name);  
  97.         } catch (SQLException e) {  
  98.             e.printStackTrace();  
  99.         }  
  100.         return students;  
  101.     }  
  102.   
  103.     public Student selectStudentById(int id) {  
  104.         Student student = null;  
  105.         try {  
  106.             student = (Student) sqlMapClient.queryForObject(  
  107.                     "selectStudentById", id);  
  108.         } catch (SQLException e) {  
  109.             e.printStackTrace();  
  110.         }  
  111.         return student;  
  112.     }  
  113. }  

 

TestIbatis.java

Java代码  收藏代码
  1. package com.iflytek.test;  
  2.   
  3. import java.sql.Date;  
  4. import java.util.List;  
  5.   
  6. import com.iflytek.daoimpl.StudentDaoImpl;  
  7. import com.iflytek.entity.Student;  
  8.   
  9. /** 
  10.  * @author xudongwang 2011-12-31 
  11.  *  
  12.  *         Email:xdwangiflytek@gmail.com 
  13.  *  
  14.  */  
  15. public class TestIbatis {  
  16.   
  17.     public static void main(String[] args) {  
  18.         StudentDaoImpl studentDaoImpl = new StudentDaoImpl();  
  19.   
  20.         System.out.println("测试插入");  
  21.         Student addStudent = new Student();  
  22.         addStudent.setName("李四");  
  23.         addStudent.setBirth(Date.valueOf("2011-09-02"));  
  24.         addStudent.setScore(88);  
  25.         System.out.println(studentDaoImpl.addStudent(addStudent));  
  26.   
  27.         System.out.println("测试根据id查询");  
  28.         System.out.println(studentDaoImpl.selectStudentById(1));  
  29.   
  30.         System.out.println("测试模糊查询");  
  31.         List<Student> mohuLists = studentDaoImpl.selectStudentByName("李");  
  32.         for (Student student : mohuLists) {  
  33.             System.out.println(student);  
  34.         }  
  35.   
  36.         System.out.println("测试查询所有");  
  37.         List<Student> students = studentDaoImpl.selectAllStudent();  
  38.         for (Student student : students) {  
  39.             System.out.println(student);  
  40.         }  
  41.   
  42.         System.out.println("根据id删除学生信息");  
  43.         System.out.println(studentDaoImpl.deleteStudentById(1));  
  44.   
  45.         System.out.println("测试更新学生信息");  
  46.         Student updateStudent = new Student();  
  47.         updateStudent.setId(1);  
  48.         updateStudent.setName("李四1");  
  49.         updateStudent.setBirth(Date.valueOf("2011-08-07"));  
  50.         updateStudent.setScore(21);  
  51.         System.out.println(studentDaoImpl.updateStudent(updateStudent));  
  52.   
  53.     }  
  54. }  

 

iBatis 的优缺点:

优点:

1、 减少代码量,简单;

2、 性能增强;

3、 Sql 语句与程序代码分离;

4、 增强了移植性;

缺点:

1、 Hibernate 相比,sql 需要自己写;

2、 参数数量只能有一个,多个参数时不太方便;

 

 

分享到:
评论

相关推荐

    物联网_Android蓝牙双模开发_基于BLE40和BLE50的双通道蓝牙通信框架_支持多设备并发管理与自定义数据包解析的智能硬件控制SDK_适用于智能家居和工业物联网场景的蓝.zip

    物联网_Android蓝牙双模开发_基于BLE40和BLE50的双通道蓝牙通信框架_支持多设备并发管理与自定义数据包解析的智能硬件控制SDK_适用于智能家居和工业物联网场景的蓝

    thymeleaf-2.0.1.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    在线教育_微信小程序云开发_课程预约管理系统_基于腾讯云开发的智能在线课程预约平台_包含课程时间管理_学员自助预约_多维度签到核销_数据导出分析_适用于教育培训机构_健身房_企业内.zip

    在线教育_微信小程序云开发_课程预约管理系统_基于腾讯云开发的智能在线课程预约平台_包含课程时间管理_学员自助预约_多维度签到核销_数据导出分析_适用于教育培训机构_健身房_企业内

    基于改进二进制粒子群算法的含需求响应机组组合问题研究——MATLAB代码实现及复现国际学术研究A Modified Binary PSO在微电网中的创新应用

    内容概要:本文详细介绍了如何使用MATLAB实现改进二进制粒子群算法来解决含需求响应的机组组合问题。文章首先构建了机组组合问题的基本模型,定义了机组的数量及其最小和最大发电功率等参数。接着,在此基础上加入了需求响应机制,通过设置需求响应的最大可削减负荷量和补偿系数,实现了对负荷侧的管理。为了提高求解效率,采用了一种改进的二进制粒子群算法,该算法通过独特的更新策略使粒子更快更准地找到最优解。此外,还讨论了微电网调度中如何降低发电成本并确保供电稳定性,强调了需求响应在优化调度中的重要性。 适合人群:对电力系统优化、机组组合问题、需求响应机制以及改进粒子群算法感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要优化电力系统调度的研究项目或实际工程应用,旨在通过引入需求响应机制和改进的粒子群算法,降低发电成本,提高系统的灵活性和经济效益。 其他说明:文中提供的MATLAB代码示例有助于理解和复现算法的具体实现,同时提醒了一些常见的陷阱和注意事项,如负荷预测误差的影响和合理的参数选择。

    chromedriver-linux64-138.0.7153.0.zip

    chromedriver-linux64-138.0.7153.0.zip

    基干领航跟随者与滑膜控制的多智能体编队仿真控制:700行Matlab代码实现变换队形避障

    内容概要:本文详细介绍了基于领航跟随者和滑膜控制的多智能体编队仿真控制系统。首先阐述了领航跟随者策略的工作原理,即由一个领航者决定编队的整体运动方向和其他跟随者根据相对位置进行调整。接着解释了滑膜控制的作用及其在编队控制中的优势,特别是在应对环境干扰和实现精准轨迹跟踪方面的能力。文中提供了具体的Matlab代码示例,涵盖智能体初始化、障碍物检测与避障机制、领航者轨迹生成、滑膜控制器的设计以及队形变换等多个重要环节。此外,作者还分享了一些实用的经验和技术细节,如数值积分步长选择、避障算法优化等。 适合人群:对多智能体系统、编队控制、滑膜控制感兴趣的科研人员、研究生及工程师。 使用场景及目标:适用于需要理解和实现多智能体编队控制系统的场合,特别是涉及无人机编队飞行、自动驾驶车辆协同作业等领域。目标是帮助读者掌握领航跟随者策略和滑膜控制的具体实现方法,提高编队系统的稳定性和灵活性。 其他说明:文中提到的代码可以在Matlab环境下运行,提供了完整的编队控制流程演示,有助于加深对相关概念的理解。同时,文中讨论的一些优化措施也为进一步的研究提供了有价值的参考。

    常见分布函数的拟合与KS检验:Matlab边缘分布拟合与检验方法

    内容概要:本文详细介绍了如何在Matlab中进行常见分布函数的拟合及其KS检验。首先概述了几种常见的概率分布,如正态分布、对数正态分布、伽马分布、威布尔分布、指数分布、瑞利分布和极值分布等。然后通过具体的Matlab代码展示了如何生成示例数据,并利用fitdist函数对这些分布进行拟合。接下来,使用kstest函数进行了KS检验,以评估数据是否符合所拟合的分布。文中还强调了KS检验的局限性和注意事项,如参数估计的影响和p值的解释。最后,通过可视化手段进一步验证了拟合的效果。 适合人群:具备一定数学和编程基础的数据分析师、科研工作者及学生。 使用场景及目标:适用于需要对数据进行概率分布拟合和检验的实际应用场景,如金融风险评估、可靠性分析、信号处理等。目标是帮助读者掌握Matlab中分布拟合和KS检验的具体实现方法,提高数据分析能力。 其他说明:文章不仅提供了详细的代码示例,还讨论了实际应用中的注意事项,如参数估计质量、p值解释和物理意义的选择。同时,强调了KS检验作为参考工具的作用,不应过分依赖统计检验结果,还需结合业务背景做出最终判断。

    MAXHUB-V1.5.3-PRO-setup

    maxhub传屏软件

    基于 ESP32 和 GC9D01 0.71''TFT 的逼真眼睛与写轮眼绘制

    GC9D01_Rotation.h

    物联网_蓝牙50_BLE低功耗通信_基于ESP32芯片的智能家居设备无线控制系统_实现多设备互联与远程监控的跨平台解决方案_包含Android和iOS移动端应用开发_支持MQTT.zip

    物联网_蓝牙50_BLE低功耗通信_基于ESP32芯片的智能家居设备无线控制系统_实现多设备互联与远程监控的跨平台解决方案_包含Android和iOS移动端应用开发_支持MQTT

    iOS开发_AVFoundation框架_Swift编程语言_本地音频播放_网络音频流媒体_后台播放功能_耳机线控支持_UI界面设计_音乐播放器Demo_项目结构优化_错误处理机制.zip

    iOS开发_AVFoundation框架_Swift编程语言_本地音频播放_网络音频流媒体_后台播放功能_耳机线控支持_UI界面设计_音乐播放器Demo_项目结构优化_错误处理机制

    DT决策树回归预测MATLAB代码详解:清晰注释,轻松读取EXCEL数据,适合初学者上手使用

    内容概要:本文详细介绍了如何使用MATLAB实现决策树回归模型,具体步骤包括数据读取、数据预处理、模型训练、预测与评估以及结果可视化。文中提供了完整的代码示例,并针对每个步骤给出了详细的注释和解释,确保读者能够轻松理解和上手。此外,还讨论了决策树回归模型的优点和局限性,如解释性强但易过拟合的问题,并给出了一些优化建议。 适合人群:具备基本编程技能并对机器学习感兴趣的初学者,尤其是希望通过MATLAB快速入门决策树回归模型的人。 使用场景及目标:适用于需要进行回归预测的实际项目,如房价预测、温度预测等。通过学习本文,读者可以掌握如何利用MATLAB实现决策树回归模型,理解模型的工作原理及其应用场景。 其他说明:文中强调了代码实现过程中的一些注意事项,如数据格式、路径设置等,并提供了一些常见的解决方案和优化技巧,帮助读者更好地应对实际问题。

    chromedriver-win64-138.0.7158.0.zip

    chromedriver-win64-138.0.7158.0.zip

    基于储能电站服务的冷热电多微网系统双层优化配置的MATLAB实现与仿真分析

    内容概要:本文详细介绍了基于储能电站服务的冷热电多微网系统的双层优化配置方法及其MATLAB代码实现。文章首先阐述了冷热电多微网系统的重要性和储能电站在其中的关键作用,随后讲解了双层优化配置的概念,即上层优化关注系统宏观目标(如成本最小化、能源利用率最大化),下层优化侧重于各微网系统的具体运行情况。文中提供了具体的MATLAB代码示例,包括上层和下层优化的实现方式,并通过实例展示了如何使用CPLEX求解器进行优化。此外,文章还探讨了模型的实际应用效果,指出相比于传统单层优化,双层优化能够使系统运行成本降低15%-20%,特别是在储能的削峰填谷方面表现出色。最后,作者分享了一些调试经验和实用技巧,如延迟约束生成、结构化数据管理和迭代过程中的收敛判断等。 适用人群:从事能源系统优化的研究人员和技术人员,尤其是对MATLAB和CPLEX有一定了解的读者。 使用场景及目标:适用于需要对冷热电多微网系统进行优化配置的工程项目,旨在通过合理的储能电站配置和调度策略,实现能源利用效率的最大化和系统运行成本的最小化。 其他说明:文章不仅提供了理论指导,还附带了详细的代码实现,便于读者理解和实践。对于初学者而言,建议逐步学习并调试代码,掌握双层优化配置的核心思想和关键技术。

    三菱FX5U七轴标准程序详解:轴点动、回零、相对与绝对定位全面解析,手把手教你编写控制程序,程序流程清晰明了,附带触摸屏操作指南

    内容概要:本文深入解析了三菱FX5U PLC七轴控制系统的标准程序,涵盖主控程序、点动/回零/定位控制、手动模块、复位程序以及生产计数模块。主控程序利用状态寄存器进行模式切换,确保各模块独立运作;点动模式通过PLSY指令控制电机正反转,绝对定位采用DRVA指令,回零则使用ZRN指令;手动模块加入双线圈互锁设计防止误操作;复位程序包含状态检测,确保安全复位;生产计数模块通过上升沿触发避免计数异常。此外,文章还介绍了触摸屏程序的设计要点和调试过程中的一些常见问题及其解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC编程有一定基础的人群。 使用场景及目标:适用于需要理解和掌握三菱FX5U PLC七轴控制系统的设计和调试的技术人员。主要目标是帮助读者理解各个功能模块的工作原理,提高编程效率和系统稳定性。 其他说明:文中提供了大量实际应用中的经验和技巧,有助于读者在实际工作中避免常见的错误,提升工作效率。

    【图像分割】基于matlab双目标遗传算法NSGAII优化PCNN图像分割【含Matlab源码 13257期】.zip

    985研究生,Matlab领域优质创作者 (1)如需代码 加腾讯企鹅号,见评论区或私信; (2)代码运行版本 Matlab 2019b (3)其他仿真咨询 1 完整代码包运行+运行有问题可咨询 2 期刊或论文复现; 3 程序定制; 4 期刊写作或指导; 5 科研合作;

    mybatis-3.5.1.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    detection method(1)(1)(1) (1).pdf

    detection method(1)(1)(1) (1)

    chromedriver-linux64-138.0.7158.0.zip

    chromedriver-linux64-138.0.7158.0.zip

Global site tag (gtag.js) - Google Analytics