:在MySQL中创建表1.1所示的商品数据表goods,在Eclipse中创建一个MyBatis项目,查询出全部商品。
时间: 2024-02-17 08:04:47 浏览: 106
用MyBatis实现表的一对多关联查询
好的,下面是在 MySQL 中创建商品数据表的 SQL:
```sql
CREATE TABLE goods (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
stock INT DEFAULT 0,
description TEXT,
created_time DATETIME NOT NULL,
updated_time DATETIME NOT NULL
);
```
在 Eclipse 中创建 MyBatis 项目,可以参考以下步骤:
1. 创建一个新的 Java 项目。
2. 添加 MyBatis 依赖。在 pom.xml 文件中添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
```
3. 配置 MyBatis。在 src/main/resources 目录下创建 mybatis-config.xml 文件,并添加以下内容:
```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>
<typeAliases>
<typeAlias type="com.example.mybatisdemo.entity.Goods" alias="Goods"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/GoodsMapper.xml"/>
</mappers>
</configuration>
```
其中,typeAliases 部分配置了实体类别名,environments 部分配置了数据库连接信息,mappers 部分配置了映射文件路径。
4. 创建实体类。在 src/main/java 目录下创建 com.example.mybatisdemo.entity 包,并创建 Goods 实体类:
```java
package com.example.mybatisdemo.entity;
import java.math.BigDecimal;
import java.util.Date;
public class Goods {
private Long id;
private String name;
private BigDecimal price;
private Integer stock;
private String description;
private Date createdTime;
private Date updatedTime;
// getter 和 setter 省略
}
```
5. 创建映射文件。在 src/main/resources/mapper 目录下创建 GoodsMapper.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.mybatisdemo.mapper.GoodsMapper">
<select id="findAll" resultType="Goods">
SELECT id, name, price, stock, description, created_time, updated_time
FROM goods
</select>
</mapper>
```
其中,namespace 部分配置了 Mapper 接口路径,select 部分配置了查询所有商品的 SQL。
6. 创建 Mapper 接口。在 src/main/java 目录下创建 com.example.mybatisdemo.mapper 包,并创建 GoodsMapper 接口:
```java
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.entity.Goods;
import java.util.List;
public interface GoodsMapper {
List<Goods> findAll();
}
```
其中,findAll 方法是映射文件中定义的 SQL。
7. 编写测试代码。在 src/test/java 目录下创建 com.example.mybatisdemo 包,创建 Test 类:
```java
package com.example.mybatisdemo;
import com.example.mybatisdemo.entity.Goods;
import com.example.mybatisdemo.mapper.GoodsMapper;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
public class Test {
private static SqlSessionFactory sqlSessionFactory;
static {
String resource = "mybatis-config.xml";
sqlSessionFactory = new SqlSessionFactoryBuilder().build(Test.class.getClassLoader().getResourceAsStream(resource));
}
@Test
public void testFindAll() {
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
GoodsMapper goodsMapper = sqlSession.getMapper(GoodsMapper.class);
List<Goods> goodsList = goodsMapper.findAll();
System.out.println(goodsList);
}
}
}
```
具体来说,这段代码会读取 MyBatis 的配置文件,创建 SqlSessionFactory 对象,并通过 SqlSession 对象执行查询所有商品的 SQL。
运行测试代码后,将会输出数据库中的全部商品信息。
阅读全文