mybits对数据库增删改查,练习MyBatis的实现,实现两种方式:基于XML配置的实现和基于注解的实现,重点练习MyBatis的配置,Mapper.xml文件配置, SqlMapConfig.xml文件配置, SqlSession。场景描述:有一个数据库testdb,里面有一张表User,包含5个字段:id,name,sex,classno,age(学号,姓名,性别,班号,年龄),实现对该表的增删改查操作。
时间: 2023-06-09 17:06:24 浏览: 161
ChitGPT: 您好!您想了解有关MyBatis实现数据库增删改查的两种方式的信息,是吗?
基于XML配置的实现方式可以通过在Mapper.xml文件中写SQL语句并且在SqlMapConfig.xml文件中指定数据源和Mapper文件的路径来实现。而基于注解的实现方式则是在Mapper接口中使用注解来实现。
以下是基于XML配置的实现步骤:
1. 在SqlMapConfig.xml中配置数据源和Mapper文件路径:
```
<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/testdb"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
2. 在Mapper.xml文件中配置SQL语句:
```
<mapper namespace="com.example.UserMapper">
<select id="selectUserById" resultType="com.example.User">
SELECT * FROM User WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO User (id, name, sex, classno, age)
VALUES (#{id}, #{name}, #{sex}, #{classno}, #{age})
</insert>
<update id="updateUser" parameterType="com.example.User">
UPDATE User SET name = #{name}, sex = #{sex}, classno = #{classno}, age = #{age}
WHERE id = #{id}
</update>
<delete id="deleteUserById">
DELETE FROM User WHERE id = #{id}
</delete>
</mapper>
```
3. 在Java代码中获取SqlSession并执行SQL语句:
```
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId("123");
user.setName("张三");
user.setSex("男");
user.setClassno("1班");
user.setAge(20);
userMapper.insertUser(user); //插入数据
userMapper.selectUserById("123"); //查询数据
userMapper.updateUser(user); //更新数据
userMapper.deleteUserById("123"); //删除数据
sqlSession.commit();
sqlSession.close();
```
基于注解的实现方式则可以在Mapper接口中使用注解来直接指定SQL语句,以下是一个示例:
```
public interface UserMapper {
@Select("SELECT * FROM User WHERE id = #{id}")
User selectUserById(String id);
@Insert("INSERT INTO User (id, name, sex, classno, age) VALUES (#{id}, #{name}, #{sex}, #{classno}, #{age})")
void insertUser(User user);
@Update("UPDATE User SET name = #{name}, sex = #{sex}, classno = #{classno}, age = #{age} WHERE id = #{id}")
void updateUser(User user);
@Delete("DELETE FROM User WHERE id = #{id}")
void deleteUserById(String id);
}
```
然后在Java代码中也可以直接调用相应的方法,不再需要获取SqlSession。
希望这些信息能对您有所帮助!
阅读全文