给我写个mybatis程序
时间: 2023-11-17 16:08:33 浏览: 83
抱歉,作为AI语言模型,我无法提供完整的编程服务。以下是一个简单的MyBatis程序示例,供您参考:
1. 创建数据库表
首先,我们需要在数据库中创建一个名为 `user` 的表,包含 `id` 和 `name` 两个字段:
```sql
CREATE TABLE user (
id INT PRIMARY KEY,
name VARCHAR(20)
);
```
2. 配置 MyBatis
创建一个名为 `mybatis-config.xml` 的文件,配置 MyBatis 的数据源和映射文件:
```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.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
其中,`<dataSource>` 标签指定了数据库连接信息,`<mapper>` 标签指定了映射文件的位置。
3. 创建映射文件
创建一个名为 `UserMapper.xml` 的文件,定义 SQL 语句和映射方法:
```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">
<select id="getUserById" parameterType="int" resultType="com.example.model.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="addUser" parameterType="com.example.model.User">
INSERT INTO user (id, name) VALUES (#{id}, #{name})
</insert>
</mapper>
```
其中,`<select>` 标签指定了查询语句和返回类型,`<insert>` 标签指定了插入语句和参数类型。
4. 编写 Java 代码
创建一个名为 `UserMapper.java` 的接口文件,定义查询和插入方法:
```java
package com.example.mapper;
import com.example.model.User;
public interface UserMapper {
User getUserById(int id);
void addUser(User user);
}
```
创建一个名为 `User.java` 的实体类文件,定义用户信息:
```java
package com.example.model;
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
```
创建一个名为 `Main.java` 的主程序文件,调用查询和插入方法:
```java
package com.example;
import com.example.mapper.UserMapper;
import com.example.model.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class Main {
public static void main(String[] args) throws IOException {
// 加载 MyBatis 配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取 SqlSession 对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 获取 UserMapper 接口对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 查询用户信息
User user = userMapper.getUserById(1);
System.out.println(user.getName());
// 插入用户信息
User newUser = new User();
newUser.setId(2);
newUser.setName("张三");
userMapper.addUser(newUser);
sqlSession.commit();
// 关闭 SqlSession 对象
sqlSession.close();
}
}
```
5. 运行程序
在命令行中进入程序所在目录,执行以下命令:
```
javac -cp ".:mybatis-3.5.7.jar:mysql-connector-java-8.0.25.jar" com/example/*.java com/example/mapper/*.java com/example/model/*.java
java -cp ".:mybatis-3.5.7.jar:mysql-connector-java-8.0.25.jar" com.example.Main
```
其中,`-cp` 参数指定了程序的依赖库和类路径,`.` 表示当前目录。如果一切正常,程序应该输出以下结果:
```
张三
```
阅读全文