MyBatis是一种开源的、轻量级的Java持久化框架,它通过XML或注解的方式将Java对象映射到数据库表中,并提供了灵活的SQL查询语句编写方式,使得Java程序员可以很方便地使用对应的数据访问API进行操作。
MyBatis有以下几个主要特点:
- 简单易学:MyBatis使用简单,易于掌握和使用。
- 灵活性高:MyBatis提供了多种映射方式,支持手动映射和自动映射,还能够自定义SQL查询语句,以适应各种复杂的业务需求。
- SQL可读性好:MyBatis将SQL查询语句和Java对象映射关系分离,可以使得SQL查询语句更加清晰易懂。
- 映射文件可重用:MyBatis的映射文件可以被多个Mapper接口共享,从而提高了代码的可重用性。
- 支持缓存:MyBatis支持一级缓存和二级缓存,提高了查询效率。
下面是一个简单的使用MyBatis进行数据库操作的示例代码:
// 定义User类
public class User {
private int id;
private String name;
private int age;
// 省略getter和setter方法
}
// 定义UserDao接口
public interface UserDao {
// 根据id获取用户信息
User getUserById(int id);
// 添加用户信息
void addUser(User user);
// 更新用户信息
void updateUser(User user);
// 删除用户信息
void deleteUser(int id);
}
// 在mybatis-config.xml配置文件中配置数据源和mapper
<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/mydatabase"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
// 定义UserMapper.xml文件,用于映射SQL语句和Java方法
<mapper namespace="UserDao">
<select id="getUserById" parameterType="int" resultType="User">
select * from users where id=#{id}
</select>
<insert id="addUser" parameterType="User">
insert into users(name,age) values(#{name},#{age})
</insert>
<update id="updateUser" parameterType="User">
update users set name=#{name}, age=#{age} where id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>
</mapper>
// 使用SqlSessionFactory