有AI现在是方便多了,写这些DAO的文件非常费时间,可用插件生成代码,也可以用AI生成。例如用kimi,执行以下任务,可以进行较好的输出。
输入:
根据以下的表结构生成mybatis的java实体文件(所在包名为com.spell.mapper.do),mapper文件(所在包名为com.mapper.dao)、xml配置文件(所在的路径为mabatis.mapper)
CREATE TABLE `users` (
`user_id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int DEFAULT NULL,
`gmt_create` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
输出:
根据提供的表结构,以下是生成的MyBatis Java实体文件、Mapper文件和XML配置文件的完整代码。这些文件将按照指定的包名和路径进行组织。
### **1. Java实体类(User.java)**
**包名:** `com.spell.mapper.do`
```java
package com.spell.mapper.do;
import java.util.Date;
public class User {
private Long userId;
private String name;
private Integer age;
private Date gmtCreate;
// Getters and Setters
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
// toString method
@Override
public String toString() {
return "User{" +
"userId=" + userId +
", name='" + name + '\'' +
", age=" + age +
", gmtCreate=" + gmtCreate +
'}';
}
}
```
### **2. Mapper接口(UserMapper.java)**
**包名:** `com.mapper.dao`
```java
package com.mapper.dao;
import com.spell.mapper.do.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
// 查询所有用户
List<User> findAll();
// 根据ID查询用户
User findById(Long userId);
// 插入用户
int insert(User user);
// 更新用户
int update(User user);
// 删除用户
int delete(Long userId);
}
```
### **3. Mapper XML配置文件(UserMapper.xml)**
**路径:** `mybatis/mapper/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.mapper.dao.UserMapper">
<!-- 查询所有用户 -->
<select id="findAll" resultType="com.spell.mapper.do.User">
SELECT user_id, name, age, gmt_create
FROM users
</select>
<!-- 根据ID查询用户 -->
<select id="findById" parameterType="long" resultType="com.spell.mapper.do.User">
SELECT user_id, name, age, gmt_create
FROM users
WHERE user_id = #{userId}
</select>
<!-- 插入用户 -->
<insert id="insert" parameterType="com.spell.mapper.do.User">
INSERT INTO users (name, age, gmt_create)
VALUES (#{name}, #{age}, #{gmtCreate})
</insert>
<!-- 更新用户 -->
<update id="update" parameterType="com.spell.mapper.do.User">
UPDATE users
SET name = #{name},
age = #{age},
gmt_create = #{gmtCreate}
WHERE user_id = #{userId}
</update>
<!-- 删除用户 -->
<delete id="delete" parameterType="long">
DELETE FROM users
WHERE user_id = #{userId}
</delete>
</mapper>
```
### **4. MyBatis配置文件(mybatis-config.xml)**
**路径:** `mybatis/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>
<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/your_database_name?useSSL=false&serverTimezone=UTC"/>
<property name="username" value="your_username"/>
<property name="password" value="your_password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
### **5. 注意事项**
1. **数据库连接信息**:在`mybatis-config.xml`中,替换`your_database_name`、`your_username`和`your_password`为你的实际数据库连接信息。
2. **实体类字段映射**:确保实体类的字段与数据库表字段的类型一致。
3. **Mapper接口和XML文件**:Mapper接口中的方法名和XML文件中的`id`属性值需要保持一致。
4. **包名和路径**:确保实体类、Mapper接口和XML文件的包名和路径与项目结构一致。
通过以上步骤,你可以生成一个完整的MyBatis项目结构,包括实体类、Mapper接口和XML配置文件。