Java之MyBatis入门详解
MyBatis是一种持久化框架,它可以简化Java应用程序与关系型数据库之间的交互并提高其性能。本篇文章提供了MyBatis的详细入门攻略。
环境搭建
- 安装Java JDK和Maven。
- 创建一个新的Maven项目。
- 在pom.xml文件中添加以下依赖项:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
配置MyBatis
- 创建一个mybatis-config.xml配置文件。
- 在mybatis-config.xml中,对于每个数据源,配置以下信息:
<configuration>
<environments default="development">
<environment id="development">
<!-- 数据源配置-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
<transactionManager type="JDBC"/>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
创建数据访问对象(DAO)
- 编写一个BlogMapper接口,并定义需要的数据访问方法:
public interface BlogMapper {
List<Blog> selectBlogs();
Blog selectBlogById(Long id);
void insertBlog(Blog blog);
void updateBlog(Blog blog);
void deleteBlog(Long id);
}
- 创建BlogMapper.xml文件,并为每个方法提供相应的SQL查询和参数映射:
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlogs" resultType="Blog">
select * from blog
</select>
<select id="selectBlogById" parameterType="Long" resultType="Blog">
select * from blog where id = #{id}
</select>
<insert id="insertBlog" parameterType="Blog">
insert into blog (title, content) values (#{title}, #{content})
</insert>
<update id="updateBlog" parameterType="Blog">
update blog set title = #{title}, content = #{content} where id = #{id}
</update>
<delete id="deleteBlog" parameterType="Long">
delete from blog where id = #{id}
</delete>
</mapper>
使用MyBatis
- 编写一个应用程序,以依赖注入的方式获取BlogMapper接口的实例并调用其方法:
public static void main(String[] args) {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
BlogMapper mapper = session.getMapper(BlogMapper.class);
// 调用此处的Mapper接口方法,即可对Blog进行CRUD操作
List<Blog> blogs = mapper.selectBlogs();
for (Blog blog : blogs) {
System.out.println(blog.getTitle());
}
} finally {
session.close();
}
}
- 通过自动映射,使用内置映射器自动映射结果:
public interface BlogMapper {
@Select("select * from blog")
@Results({
@Result(property = "title", column = "title"),
@Result(property = "content", column = "content")
})
List<Blog> selectBlogs();
}
这样,MyBatis会自动将查询结果映射到Blog对象上,无需编写额外的代码。
以上是MyBatis入门详解的两个示例,欢迎尝试使用这个强大的持久化框架。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之MyBatis入门详解 - Python技术站