数据库两张表在springboot中写xml如何写
时间: 2024-01-04 07:14:42 浏览: 27
1. 创建实体类
首先,我们需要创建对应的Java实体类,以便于操作数据库中的数据。我们假设有两张表:`user`和`order`。
User实体类:
```java
public class User {
private Long id;
private String name;
private Integer age;
// 省略getter和setter方法
}
```
Order实体类:
```java
public class Order {
private Long id;
private Long userId;
private String orderNo;
private Date createTime;
// 省略getter和setter方法
}
```
2. 创建Mapper接口
接下来,我们需要创建对应的Mapper接口,用于操作数据库。我们可以使用MyBatis提供的注解方式或者XML方式来编写Mapper接口。这里我们选择使用XML方式来编写Mapper接口。
UserMapper接口:
```java
public interface UserMapper {
User selectById(Long id);
List<User> selectAll();
int insert(User user);
int update(User user);
int deleteById(Long id);
}
```
OrderMapper接口:
```java
public interface OrderMapper {
Order selectById(Long id);
List<Order> selectAll();
List<Order> selectByUserId(Long userId);
int insert(Order order);
int update(Order order);
int deleteById(Long id);
}
```
3. 创建Mapper XML文件
接下来,我们需要创建对应的Mapper XML文件,这里我们假设分别为`userMapper.xml`和`orderMapper.xml`。
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.mapper.UserMapper">
<resultMap id="userResultMap" type="com.example.entity.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
<select id="selectById" resultMap="userResultMap" parameterType="java.lang.Long">
select * from user where id=#{id}
</select>
<select id="selectAll" resultMap="userResultMap">
select * from user
</select>
<insert id="insert" parameterType="com.example.entity.User">
insert into user(name, age) values (#{name}, #{age})
</insert>
<update id="update" parameterType="com.example.entity.User">
update user set name=#{name}, age=#{age} where id=#{id}
</update>
<delete id="deleteById" parameterType="java.lang.Long">
delete from user where id=#{id}
</delete>
</mapper>
```
orderMapper.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.mapper.OrderMapper">
<resultMap id="orderResultMap" type="com.example.entity.Order">
<id property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="orderNo" column="order_no"/>
<result property="createTime" column="create_time"/>
</resultMap>
<select id="selectById" resultMap="orderResultMap" parameterType="java.lang.Long">
select * from order where id=#{id}
</select>
<select id="selectAll" resultMap="orderResultMap">
select * from order
</select>
<select id="selectByUserId" resultMap="orderResultMap" parameterType="java.lang.Long">
select * from order where user_id=#{userId}
</select>
<insert id="insert" parameterType="com.example.entity.Order">
insert into order(user_id, order_no, create_time) values (#{userId}, #{orderNo}, #{createTime})
</insert>
<update id="update" parameterType="com.example.entity.Order">
update order set user_id=#{userId}, order_no=#{orderNo}, create_time=#{createTime} where id=#{id}
</update>
<delete id="deleteById" parameterType="java.lang.Long">
delete from order where id=#{id}
</delete>
</mapper>
```
4. 配置Mapper
最后,我们需要将Mapper配置到Spring Boot中。这里我们可以使用MyBatis提供的自动配置方式或者手动配置方式来配置Mapper。
自动配置方式:
在`application.properties`中添加如下配置:
```properties
mybatis.mapper-locations=classpath:mapper/*.xml
```
手动配置方式:
```java
@Configuration
@MapperScan("com.example.mapper")
public class MyBatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
return sessionFactory;
}
@Bean
public DataSource dataSource() {
// 配置数据源
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
}
```
这里我们使用了注解`@MapperScan`来扫描Mapper接口,并且手动配置了SqlSessionFactoryBean、DataSource和DataSourceTransactionManager。同时,我们需要在`application.properties`中配置数据库连接信息。