简单使用mybatis
时间: 2023-11-07 11:59:32 浏览: 32
MyBatis是一种Java持久化框架,可以通过XML或注释的方式将数据库操作映射成Java方法。下面是一个简单的使用MyBatis的例子。
首先,需要在项目中引入MyBatis的依赖,比如:
```xml
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
```
然后,在MyBatis的配置文件中配置数据源和映射文件的位置,比如:
```xml
<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/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
在上面的配置中,我们指定了数据库的连接信息和映射文件的位置。
接下来,我们可以定义一个User实体类,比如:
```java
public class User {
private int id;
private String name;
private int age;
// getter and setter
}
```
然后,我们需要定义一个UserMapper接口,用于定义数据库操作的方法,比如:
```java
public interface UserMapper {
User getUserById(int id);
List<User> getAllUsers();
void addUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
```
接下来,我们需要定义一个UserMapper.xml文件,用于将数据库操作映射成Java方法,比如:
```xml
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.entity.User">
select * from user where id = #{id}
</select>
<select id="getAllUsers" resultType="com.example.entity.User">
select * from user
</select>
<insert id="addUser" parameterType="com.example.entity.User">
insert into user (name, age) values (#{name}, #{age})
</insert>
<update id="updateUser" parameterType="com.example.entity.User">
update user set name = #{name}, age = #{age} where id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from user where id = #{id}
</delete>
</mapper>
```
在上面的配置中,我们使用了XML的方式将数据库操作映射成了Java方法。
最后,我们可以通过MyBatis提供的SqlSessionFactory和SqlSession来执行数据库操作,比如:
```java
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession session = factory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
List<User> userList = mapper.getAllUsers();
System.out.println(userList);
User newUser = new User();
newUser.setName("Tom");
newUser.setAge(20);
mapper.addUser(newUser);
user.setAge(25);
mapper.updateUser(user);
mapper.deleteUser(3);
session.commit();
session.close();
```
在上面的代码中,我们通过SqlSessionFactory和SqlSession获取了UserMapper接口的实现,然后通过接口的方法来执行数据库操作。最后,如果有修改操作,需要调用session.commit()来提交事务,否则数据不会被真正保存到数据库中。