版权声明:转载请留言告知,注明出处 https://blog.csdn.net/qq_36213352/article/details/87303709
什么是 MyBatis ?
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis如何安装?
要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。
如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
MyBatis的功能架构:
我们把Mybatis的功能架构分为三层:
- API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
- 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
- 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
在mybatis中对sql进行编程和简单的判断
1.执行SQL语句(如果数据库中没有就进行插入,如果数据库有记录就更新数据)
<insert id="insert" parameterType="map">
<selectKey keyProperty="count" resultType="int" order="BEFORE">
SELECT count (A.uk_) FROM tb_common_jgzt A
</selectKey>
<choose>
<when test="count>0">
UPDATE tb_common_jgzt a
<set>
a.name=#{name},
a.address=#{address},
a.province=#{province},
a.city=#{city},
a.street=#{street},
a.people_number=#{people_number},
a.boss_name=#{boss_name},
a.phone_number=#{phone_number},
a.boss_picture_id=#{boss_picture_id},
a.trademark_picture_id=#{trademark_picture_id},
a.organizational_code_certificate_picture_id=#{organizational_code_certificate_picture_id},
a.business_license_picture_id=#{business_license_picture_id},
a.zwzz=#{zwzz},
a.yscj=#{yscj},
a.syj=#{syj}
</set>
WHERE uk_=#{uk_}
</when>
<otherwise>
<if test="name!=null and name!=''">
REPLACE INTO tb_common_jgzt (name, address, province, city, street, people_number, boss_name,
phone_number,
boss_picture_id, trademark_picture_id, organizational_code_certificate_picture_id,
business_license_picture_id,zwzz,yscj,syj)
values
(#{name},#{address},#{province},#{city},#{street},#{people_number},#{boss_name},
#{phone_number},#{boss_picture_id},#{trademark_picture_id},#{organizational_code_certificate_picture_id},#{business_license_picture_id},
#{zwzz},#{yscj},#{syj})
</if>
</otherwise>
</choose>
</insert>