请用Mybatis框架完成对寝室人员信息进行管理。其中,寝室人员的信息包括姓名、床位号(或学号)、性别、年龄、专业等基本信息。实现对人员信息的增加、删除、修改等基本操作。(提示:可参考“第5、6章Mybatis的基本操作)要求连接数据库
时间: 2023-12-21 17:05:13 浏览: 13
好的,下面是一个完整的示例代码,包括了连接数据库的部分。
首先,我们需要创建一个MySQL数据库,并在其中创建一个名为`dormitory_member`的表,用于存储寝室人员信息。表结构如下:
```sql
CREATE TABLE `dormitory_member` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`bed_number` varchar(16) NOT NULL,
`gender` varchar(8) NOT NULL,
`age` int(11) NOT NULL,
`major` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
接下来,我们需要在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.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_test?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/DormitoryMemberMapper.xml"/>
</mappers>
</configuration>
```
其中,`dataSource`标签中的`url`、`username`和`password`属性需要根据实际情况进行修改。
接着,我们需要定义一个实体类来表示寝室人员信息。假设我们定义的实体类名为`DormitoryMember`,代码如下:
```java
public class DormitoryMember {
private int id;
private String name;
private String bedNumber;
private String gender;
private int age;
private String major;
// getter and setter methods
}
```
然后,我们需要创建一个Mapper接口来定义对寝室人员信息的操作。假设我们定义的Mapper接口名为`DormitoryMemberMapper`,代码如下:
```java
public interface DormitoryMemberMapper {
void addDormitoryMember(DormitoryMember member);
void updateDormitoryMember(DormitoryMember member);
void deleteDormitoryMember(int id);
DormitoryMember getDormitoryMemberById(int id);
List<DormitoryMember> getAllDormitoryMembers();
}
```
接着,我们需要编写Mapper接口的对应的XML文件来实现具体的数据库操作。假设我们的XML文件名为`DormitoryMemberMapper.xml`,代码如下:
```xml
<mapper namespace="com.example.mapper.DormitoryMemberMapper">
<insert id="addDormitoryMember" parameterType="com.example.entity.DormitoryMember">
insert into dormitory_member(name, bed_number, gender, age, major)
values(#{name}, #{bedNumber}, #{gender}, #{age}, #{major})
</insert>
<update id="updateDormitoryMember" parameterType="com.example.entity.DormitoryMember">
update dormitory_member
set name = #{name}, bed_number = #{bedNumber}, gender = #{gender}, age = #{age}, major = #{major}
where id = #{id}
</update>
<delete id="deleteDormitoryMember" parameterType="int">
delete from dormitory_member
where id = #{id}
</delete>
<select id="getDormitoryMemberById" parameterType="int" resultType="com.example.entity.DormitoryMember">
select * from dormitory_member
where id = #{id}
</select>
<select id="getAllDormitoryMembers" resultType="com.example.entity.DormitoryMember">
select * from dormitory_member
</select>
</mapper>
```
最后,我们需要通过Mybatis框架来调用Mapper接口中定义的方法来实现对寝室人员信息的管理。代码如下:
```java
// 创建SqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 获取Mapper接口的代理对象
DormitoryMemberMapper mapper = sqlSession.getMapper(DormitoryMemberMapper.class);
// 调用Mapper接口的方法来操作数据库
DormitoryMember member = new DormitoryMember();
member.setName("张三");
member.setBedNumber("101");
member.setGender("男");
member.setAge(20);
member.setMajor("计算机科学与技术");
mapper.addDormitoryMember(member);
member.setId(1);
member.setName("李四");
mapper.updateDormitoryMember(member);
mapper.deleteDormitoryMember(1);
member = mapper.getDormitoryMemberById(2);
System.out.println(member.getName());
List<DormitoryMember> members = mapper.getAllDormitoryMembers();
for (DormitoryMember m : members) {
System.out.println(m.getName());
}
// 关闭SqlSession对象
sqlSession.close();
```
注意,在运行代码之前需要先将MySQL数据库启动,并创建好对应的数据库和表。