MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
以下是使用Java进行MyBatis框架开发的详细步骤:
- 添加MyBatis依赖
首先,你需要在项目中添加MyBatis的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖:
xml复制代码
| <dependencies>  | |
| <dependency>  | |
| <groupId>org.mybatis</groupId>  | |
| <artifactId>mybatis</artifactId>  | |
| <version>3.x.x</version>  | |
| </dependency>  | |
| </dependencies> | 
- 配置MyBatis
创建一个配置文件,通常命名为mybatis-config.xml,并放在项目的classpath下。在该文件中,你需要配置数据源和事务管理器等信息。例如:
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>  | |
| <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://localhost:3306/mydb"/>  | |
| <property name="username" value="root"/>  | |
| <property name="password" value="password"/>  | |
| </dataSource>  | |
| </environment>  | |
| </environments>  | |
| <mappers>  | |
| <mapper resource="com/example/UserMapper.xml"/>  | |
| </mappers>  | |
| </configuration> | 
- 创建Mapper接口和映射文件
在Mapper接口中,你需要定义对数据库进行操作的方法,例如插入、查询、更新和删除等。在映射文件中,你需要定义SQL语句和参数等信息。例如:
UserMapper.java:
java复制代码
| public interface UserMapper {  | |
| User selectUser(Long id);  | |
| List<User> selectUsers();  | |
| void insertUser(User user);  | |
| void updateUser(User user);  | |
| void deleteUser(Long id);  | |
| } | 
UserMapper.xml:
xml复制代码
| <?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.UserMapper">  | |
| <select id="selectUser" resultType="com.example.User">  | |
| SELECT * FROM user WHERE id = #{id}  | |
| </select>  | |
| <select id="selectUsers" resultType="com.example.User">  | |
| SELECT * FROM user  | |
| </select>  | |
| <insert id="insertUser">  | |
| INSERT INTO user (name, email) VALUES (#{name}, #{email})  | |
| </insert>  | |
| <update id="updateUser">  | |
| UPDATE user SET name = #{name}, email = #{email} WHERE id = #{id}  | |
| </update>  | |
| <delete id="deleteUser">  | |
| DELETE FROM user WHERE id = #{id}  | |
| </delete>  | |
| </mapper> |