MyBatis是一款优秀的持久层框架,它的基本实现过程包括以下几个步骤。
1. 配置数据源
在使用MyBatis之前,需要先配置数据源。这里以MySQL数据库为例进行说明。在MyBatis的配置文件中配置数据源的方式如下:
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
2. 编写Mapper接口
Mapper接口是MyBatis实现持久化操作的关键。在Mapper接口中定义了持久化操作的方法,方法的返回值和参数类型与实际的持久化操作相匹配。Mapper接口的实现由MyBatis框架自动生成。
以User表为例,定义一个UserMapper接口:
public interface UserMapper {
int insert(User user);
User selectByPrimaryKey(Integer id);
}
3. 编写Mapper配置文件
Mapper配置文件中定义了持久化操作的具体实现,包括SQL语句、参数类型和返回类型等信息。
以User表中的insert操作为例,UserMapper.xml文件的配置如下所示:
<mapper namespace="com.example.dao.UserMapper">
<insert id="insert" parameterType="com.example.model.User">
insert into user (username, password) values(#{username}, #{password})
</insert>
</mapper>
4. 加载MyBatis配置文件和Mapper配置文件
MyBatis框架在启动时需要加载MyBatis配置文件和Mapper配置文件,可以通过如下方式实现:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
5. 调用Mapper接口
MyBatis框架生成的Mapper接口的实现可以直接调用,无需编写实现代码。以User表中的insert操作为例,调用方式如下所示:
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = new User();
user.setUsername("test");
user.setPassword("123456");
int result = userMapper.insert(user);
session.commit();
这段代码将在User表中插入一条数据,返回值为插入的记录数。
以上就是MyBatis的基本实现过程。下面给出两个示例。
示例1:查询用户信息
public class UserMapperTest {
@Test
public void testSelectByPrimaryKey() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(1);
System.out.println(user);
} finally {
session.close();
}
}
}
上述代码中,testSelectByPrimaryKey() 方法查询 User 表中主键为 1 的记录,并输出该记录。注意,在 UserMapper.xml 文件中需要定义 selectByPrimaryKey 操作的具体实现。
示例2:添加用户
public class UserMapperTest {
@Test
public void testInsert() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = new User();
user.setUsername("test");
user.setPassword("123456");
int result = userMapper.insert(user);
session.commit();
System.out.println("插入记录数:" + result);
} finally {
session.close();
}
}
}
上述代码中,testInsert() 方法插入一条新的记录到 User 表中,并输出插入成功的记录数。注意,在 UserMapper.xml 文件中需要定义 insert 操作的具体实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis基本实现过程 - Python技术站