如何使用MaBatis

    科技2024-07-27  67

    什么是MyBatis?

    MyBatis源自Apache的iBatis开源项目, 从iBatis3.x开始正式更名为MyBatis。它是一个优秀的持久层框架。 官网地址

    为什么使用MyBatis?

    在我们传统的 JDBC 中,我们除了需要自己提供 SQL 外,还必须操作 Connection、Statment、ResultSet,不仅如此,为了访问不同的表,不同字段的数据,我们需要些很多雷同模板化的代码,闲的繁琐又枯燥。 而我们在使用了 MyBatis 之后,只需要提供 SQL 语句就好了,其余的诸如:建立连接、操作 Statment、ResultSet,处理 JDBC 相关异常等等都可以交给 MyBatis 去处理,我们的关注点于是可以就此集中在 SQL 语句上,关注在增删改查这些操作层面上。 并且 MyBatis 支持使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    准备使用MyBatis

    a、下载MyBatis相应jar包:https://github.com/mybatis/mybatis-3/releases b、创建Java工程,导入MyBatis jar包(mybatis-3.4.4.jar)和数据库驱动包 c、创建user_info表并添加数据

    使用方法

    1、在com.lq.userinfo包创建IUserInfoDao接口,代码如下:

    package com.lq.userinfo; public interface IUserInfoDao { String selectUserNameById(String id); }

    2、在com.lq.test包创建Test类,代码如下:

    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.userinfo.IUserInfoDao; public class Test { public static void main(String[] args) throws IOException { InputStream inputStream = Resources.getResourceAsStream("config/mybatis-config.xml"); //获取SqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取SqlSession对象,代表与数据库的一次会话,用完需要关闭。注意:由于SqlSession为非线程安全的,所以该变量应定义为局部变量,不要定义成全局变量 SqlSession sqlSession = sqlSessionFactory.openSession(); try { //获取IUserInfo接口实现类对象 IUserInfoDao userInfoDao = sqlSession.getMapper(IUserInfoDao.class); //调用selectUserNameById方法获取userName String userName = userInfoDao.selectUserNameById("3ddcf637-15a8-49d9-a378-b3fa2f2f9c65"); //打印输出 System.out.println(userName); } finally { //释放资源 sqlSession.close(); } } }

    3、在config包创建名为mybatis-config.xml的xlm文件,代码如下:

    <?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> <environments default="development"> <!-- 配置数据库连接信息 --> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/test" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <!-- 注册Mapper xml文件 --> <mappers> <mapper resource="./config/UserInfoMapper.xml" /> </mappers> </configuration>

    4、在config包创建名为UserInfoMapper.xml的xlm文件,代码如下:

    <?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"> <!-- namespace:必须为接口的全类名 --> <mapper namespace="com.lq.userinfo.IUserInfoDao"> <!-- id:接口中定义的抽象方法名;resultType:返回值类型 --> <select id="selectUserNameById" resultType="java.lang.String"> <!-- #{id}:从传递过来的参数中取出id值 --> select user_name from user_info where id = #{id} </select> </mapper>
    Processed: 0.008, SQL: 8