Mybatis框架原理简单示例
2017-09-06 20:12
417 查看
代码示例:
Step1. 创建一个普通java工程
Step2. 配置sqlMapConfig.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configyration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configyration> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理, 事务控制由mybatis进行管理 --> <transactionManager type="JDBC" /> <!-- 数据库连接池,由mybatis进行管理 --> <dataSource type="POOLED"> <property name="driver" value="驱动"/> <property name="url" value="数据库地址"/> <property name="username" value="用户名"/> <property name="password" value="密码"/> </dataSource> </environment> </environments> <!-- 加载映射文件 --> <mappers> <mapper resource="sqlmap/EbizCode.xml" /> </mappers> </configyration>
Step2.2. 配置映射文件
注:整合ssm框架后可自动生成基本功能,部分特殊查询需自己进行编写<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- 命名空间,作用是对sql进行分类管理,理解sql隔离 注意:使用mapper代理方法开发,namesapce有特殊重要的作用 --> <mapper namespace="ebizCode"> <!-- 配置sql语句 --> <!-- 通过selct执行数据库查询 id:标识映射文件中的sql,称为statement的id 将sql语句封装到mapperdstatement对象中 #{} 表示一个占位符号 parameterType 指定输入参数的类型 #{codeType} 其中codeType表示输入的参数,参数名称就是id,若输入参数为简单类型, #{}中参数名可以任意,可以value或其它名称 resultType:指定sql输出结果的映射的java对象类型,select指定resultType表示将单条记录(画重点)映射成java对象 --> <select id="getEbizCodeByType" parameterType="String" resultType="com.zyl.mybatis.demo.pojo.EbizCode"> select * from ebiz_code c where c.code_type= #{codeType} </select> <!-- 根据用户名模糊查询,可能返回多条 --> <!-- (画重点)resultType:指定就是单条记所映射的java对象类型 --> <!-- ${}表示拼接sql串,将接收到的参数不加任何修饰拼接在sql中(容易造成sql注入) ${value}表示输入参数的内容,若传入类型是简单类型,${}中只能传value --> <select id="getEbizCodeByName" parameterType="String" resultType="com.zyl.mybatis.demo.pojo.EbizCode"> select * from ebiz_code c where c.code_type like '%#{value}%' </select> </mapper>
Step2.3. 配置POJO
/** * pojo * @author suk1M * 随便写的就不加注释了,然而不加注释不是一个好习惯 */ public class EbizCode { private BigDecimal id; private String codeType; private String code; private String codeLabel; private BigDecimal showOrder; private String parentCode; private Date createdDate; private Date modifiedDate; private String createdUser; private String modifiedUser; private Short isDelete; private String standByFlag1; private String standByFlag2; private String standByFlag3; private String standByFlag4; private String standByFlag5; public BigDecimal getId() { return id; } public void setId(BigDecimal id) { this.id = id; } public String getCodeType() { return codeType; } public void setCodeType(String codeType) { this.codeType = codeType == null ? null : codeType.trim(); } public String getCode() { return code; } public void setCode(String code) { this.code = code == null ? null : code.trim(); } public String getCodeLabel() { return codeLabel; } public void setCodeLabel(String codeLabel) { this.codeLabel = codeLabel == null ? null : codeLabel.trim(); } public BigDecimal getShowOrder() { return showOrder; } public void setShowOrder(BigDecimal showOrder) { this.showOrder = showOrder; } public String getParentCode() { return parentCode; } public void setParentCode(String parentCode) { this.parentCode = parentCode == null ? null : parentCode.trim(); } public Date getCreatedDate() { return createdDate; } public void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } public Date getModifiedDate() { return modifiedDate; } public void setModifiedDate(Date modifiedDate) { this.modifiedDate = modifiedDate; } public String getCreatedUser() { return createdUser; } public void setCreatedUser(String createdUser) { this.createdUser = createdUser == null ? null : createdUser.trim(); } public String getModifiedUser() { return modifiedUser; } public void setModifiedUser(String modifiedUser) { this.modifiedUser = modifiedUser == null ? null : modifiedUser.trim(); } public Short getIsDelete() { return isDelete; } public void setIsDelete(Short isDelete) { this.isDelete = isDelete; } public String getStandByFlag1() { return standByFlag1; } public void setStandByFlag1(String standByFlag1) { this.standByFlag1 = standByFlag1 == null ? null : standByFlag1.trim(); } public String getStandByFlag2() { return standByFlag2; } public void setStandByFlag2(String standByFlag2) { this.standByFlag2 = standByFlag2 == null ? null : standByFlag2.trim(); } public String getStandByFlag3() { return standByFlag3; } public void setStandByFlag3(String standByFlag3) { this.standByFlag3 = standByFlag3 == null ? null : standByFlag3.trim(); } public String getStandByFlag4() { return standByFlag4; } public void setStandByFlag4(String standByFlag4) { this.standByFlag4 = standByFlag4 == null ? null : standByFlag4.trim(); } public String getStandByFlag5() { return standByFlag5; } public void setStandByFlag5(String standByFlag5) { this.standByFlag5 = standByFlag5 == null ? null : standByFlag5.trim(); } }
Step3. 编写demo示例
/** * testDemo * @author suk1M * */ public class MybatisDemo { public static void main(String[] args) throws IOException { // mybatis 配置文件 String resource = "sqlMapConfig.xml"; // 读取配置文件,得到sql配置文件流 InputStream is = Resources.getResourceAsStream(resource); // 创建会话工厂,传入mybatis配置信息 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); // 通过工厂得到SqlSession SqlSession ss = ssf.openSession(); // 通过工厂得到SqlSession操作数据库 // 第一个参数:statement的id,等于namespace + "." + statement的id // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数 // ss.selectOne结果是与映射文件中所匹配的resultType类型的对象 EbizCode ec = ss.selectOne("ebizCode.getEbizCodeByType", "firstChannel"); System.out.println(ec); ss.close(); } }
相关文章推荐
- Java Webservice简单示例(非框架)
- Android 框架设计Demo,一个简单的MVP示例搜索功能,网络请求用Retrofit+RxJava实现
- 一个简单的Socket游戏服务器框架示例.
- strust2-学习(一)框架搭建和简单示例
- 一个超级简单的HTML模板框架源代码以及使用示例
- ZK(7.0.1)+Spring(2.3.2)+MyBatis(2.3.2)整合的简单示例
- spring+mybatis的简单配置示例
- 大话音频变声原理 附简单示例代码
- 整理Java的MyBatis框架中一些重要的功能及基本使用示例
- Mybatis---框架原理
- 【持久化框架】Mybatis简介与原理
- Skinned Mesh 原理解析和一个最简单的实现示例
- 最简单的CI框架入门示例--数据库取数据
- MyBatis(3.2.3)类型处理器TypeHandlers的简单示例
- Web端服务器推送技术原理分析及dwr框架简单的使用
- 【MyBatis框架】查询缓存-二级缓存原理
- frame框架简单示例
- dwr框架使用总结——简单示例
- 自己实现一个简单的Mybatis框架