下面是关于Mybatis的入门示例代码的完整攻略。
一、Mybatis入门概述
Mybatis是一个开源的ORM(Object Relational Mapping)框架,它可以将数据库中的数据直接封装成Java对象。通过Mybatis,我们不再需要手动编写一些复杂的JDBC代码,只需要编写一些简单的XML文件和Java代码就可以完成对数据库的操作。
二、环境准备与配置
在开始编写Mybatis的入门示例之前,我们需要先进行一些环境准备和配置操作,具体步骤如下:
1. 下载Mybatis
我们可以从Mybatis的官网(https://mybatis.org/)上下载最新版本的Mybatis。
2. 配置Mybatis
下载好Mybatis之后,我们需要配置Mybatis的环境。具体操作步骤如下:
(1)在项目中引入Mybatis的jar包
在使用Mybatis之前,我们需要在项目中引入Mybatis的jar包。
(2)配置Mybatis的配置文件
Mybatis的配置文件名为mybatis-config.xml
,它位于resources目录下。在配置文件中,我们需要定义一些配置信息,比如数据库的连接信息、映射文件的位置等。具体代码如下:
<?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"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
(3)配置Mybatis的映射文件
Mybatis的映射文件是一个标准的XML文件,它位于resources目录下。在映射文件中,我们需要定义一些SQL语句和Java类的映射关系。具体代码如下:
<?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.example.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="addUser" parameterType="com.example.entity.User">
INSERT INTO user (username, password, age) VALUES (#{username}, #{password}, #{age})
</insert>
</mapper>
三、Mybatis入门示例
在上面的环境准备和配置结束之后,我们可以进行Mybatis的入门示例了。下面将通过两个示例代码来讲解Mybatis的入门用法。
1. 查询示例
在这个示例中,我们将在用户表中查询一个用户的信息。具体代码如下:
(1)定义Java实体类
我们需要先定义一个Java实体类,用于保存从数据库中查询出来的数据。
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
// 省略getter和setter方法
}
(2)定义Mapper接口
我们需要定义一个Mapper接口,用于定义查询语句的方法。
public interface UserMapper {
User getUserById(int id);
}
(3)定义查询语句的映射文件
在查询语句的映射文件中,我们需要定义具体的SQL语句。
<?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.example.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
(4)编写测试代码
我们可以编写一个测试类来测试上面定义的查询方法。
public class MybatisTest {
@Test
public void testGetUserById() {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
sqlSession.close();
System.out.println(user);
}
}
2. 插入示例
在这个示例中,我们将向用户表中插入一条数据。具体代码如下:
(1)定义Java实体类
我们需要先定义一个Java实体类,用于保存要插入到数据库中的数据。
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
// 省略getter和setter方法
}
(2)定义Mapper接口
我们需要定义一个Mapper接口,用于定义插入语句的方法。
public interface UserMapper {
void addUser(User user);
}
(3)定义插入语句的映射文件
在插入语句的映射文件中,我们需要定义具体的SQL语句。
<?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.example.mapper.UserMapper">
<insert id="addUser" parameterType="com.example.entity.User">
INSERT INTO user (username, password, age) VALUES (#{username}, #{password}, #{age})
</insert>
</mapper>
(4)编写测试代码
我们可以编写一个测试类来测试上面定义的插入方法。
public class MybatisTest {
@Test
public void testAddUser() {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUsername("test");
user.setPassword("test");
user.setAge(20);
userMapper.addUser(user);
sqlSession.commit();
sqlSession.close();
}
}
四、总结
通过上面的示例,我们可以看到Mybatis在Java开发中的重要性和使用方法。Mybatis为我们的开发工作提供了非常便利的条件,让我们更加专注于业务逻辑的实现,而不是JDBC的实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis的入门示例代码 - Python技术站