1.MyBatis新手入门--工作篇

mac2025-09-01  9

      MyBatis是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为Mybatis,实质上 MyBatis对ibatis进行了一些改进。

特点:

通过直接编写SQL语句,可以直接对SQL进行性能的优化;学习门槛低,学习成本低,只要有SQL基础,就可以学习MyBatis,而且很容易上手由于直接编写SQL语句。所以灵活多变,代码维护性更好不能支持数据库无关性,即数据库发送变更,要写多套代码进行支持,移植性不好需要编写结果映射

开发步骤

1、创建PoJo实体类

2、创建全局配置文件SqlMapConfig.xml

3、编写映射文件

4、加载映射文件,在SqlMapConfig.xml中进行加载

5、编写测试程序,即编写Java代码,连接并操作数据库。

 

第一步 实体类

  

第二步:全局配置文件SqlMapConfig.xml (注意 上面的第四步 已经在XML做了)

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置mybatis的环境信息 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务控制,由mybatis进行管理 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源,采用dbcp连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--告诉MyBatis加载映射文件 --> <mappers> <mapper resource="com/lq/mapper/UserMapper.xml"></mapper> </mappers> </configuration>

第三步:编写映射文件

[id] : statement的id,要求在命名空间内唯一

[parameterType] : 入参的Java类型

[resultType]:查询出的单条结果集对应的Java类型

namespace:命名空间,它的作用就是对SQL进行分类化管理,可以理解为SQL隔离

     注意了 注意了!!!  除了使用#{id}占位符以外 还有一个${}用法

两者的区别:${}相当于SQL语句拼接      #{}相当于占位符  可以防止SQL注入

${}会引起SQL注入,一般情况下不推荐使用。但是有些场景必须使用${},比如order by ${colname}

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.lq.pojo.User"> <select id="findUserBuid" parameterType="int" resultType="com.lq.pojo.User"> SELECT * FROM users where id=#{id} </select> </mapper>

第四步:测试

package com.lq.test; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.lq.pojo.User; /** * 1.读取配置文件 * 2.通过SqlSessionFactoryBuidlder创建SqlSessionFactory会话工厂 * 3.通过SqlSessionFactory创建SqlSession * 4.调用SqlSession的操作数据库方法 * 关闭SqlSession */ public class MainTest { public static void main(String[] args) throws IOException { //1.读取配置文件 InputStream iStream=Resources.getResourceAsStream("SqlMapConfig.xml"); //2.通过SqlSessionFactoryBuidlder创建SqlSessionFactory会话工厂 SqlSessionFactory build = new SqlSessionFactoryBuilder().build(iStream); // 3.通过SqlSessionFactory创建SqlSession SqlSession openSession = build.openSession(); //4.调用SqlSession的操作数据库方法 User user = openSession.selectOne("findUserBuid",1); System.out.println(user.toString()); openSession.commit(); } }

     最后说明,这只是一个小入门的MyBatis 我们可以很直观看到 它比之前的JDBC简单太多 ,但是底层还是JDBC的哈,还有 编写入门时候  可能你会抛很多异常,你要认真检查 很多小地方的错误 例如XML里面有个namespace 路径一定要填对,openSession.selectOne("findUserBuid",1); 里面这个findUserBuid一定要和XML标签取的id一致

 

最新回复(0)