一、添加用户
- 编写User类
import lombok.Data;
@Data
public class User {
private Integer id;
private String username;
private String jobs;
private String phone;
}
- 配置mapper文件
<?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="UserMapper">
<!--根据用户编号,获取用户信息-->
<select id="findUserById" parameterType="Integer" resultType="com.mason.User">
select * from t_user where id = #{id}
</select>
<select id="findUserByName" parameterType="String" resultType="com.mason.User">
select * from t_user where username like '%${value}%'
</select>
<insert id="addUser" parameterType="com.mason.User">
insert into t_user(username,jobs,phone) values (#{username},#{jobs},#{phone})
</insert>
</mapper>
#{username}会查找参数对象User的username属性,#{jobs}和#{phone}也是一样的,并将其属性值传入SQL语句中
- MyBatis核心配置文件
<?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="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///db_mybatis?serverTimezone=CTT"/>
<property name="username" value="xxxxxxx"/>
<property name="password" value="xxxxxx"/>
</dataSource>
</environment>
</environments>
<!--配置mapper位置-->
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
- 测试:
@Test
public void addUserTest() throws Exception {
InputStream inputStream = Resources.getResourceAsStream("mabatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = new User();
user.setUsername("tom");
user.setJobs("worker");
user.setPhone("13624589654");
int rows = sqlSession.insert("UserMapper.addUser", user);
if (rows > 0) {
System.out.println("成功插入" + rows + "条数据");
} else {
System.out.println("添加数据失败");
}
sqlSession.commit();
sqlSession.close();
}
输出:
运行前的数据库:
运行后的:增加了一条数据
二、更新用户
- UserMapper.xml添加元素【核心配置文件如上,不赘述了】
<update id="updateUser" parameterType="com.mason.User">
update t_user set username=#{username},jobs=#{jobs},phone=#{phone} where id=#{id}
</update>
- 测试
@Test
public void updateUserTest() throws Exception{
InputStream inputStream = Resources.getResourceAsStream("mabatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = new User();
user.setId(4);
user.setUsername("tom");
user.setJobs("teacher");
user.setPhone("13624589654");
int rows = sqlSession.update("UserMapper.addUser", user);
if (rows > 0) {
System.out.println("成功修改了" + rows + "条数据");
} else {
System.out.println("修改数据失败");
}
sqlSession.commit();
sqlSession.close();
}
- 结果:
运行前:
运行后:tom的jobs已经变了,【有点问题,为什么不是在原数据上修改呢?】
三、删除用户
- UserMapper.xml添加元素
<delete id="deleteUser" parameterType="Integer">
delete from t_user where id=#{id}
</delete>
- 测试:
@Test
public void deleteUserTest() throws Exception{
InputStream inputStream = Resources.getResourceAsStream("mabatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
int rows = sqlSession.delete("UserMapper.deleteUser", 4);
if (rows > 0) {
System.out.println("成功删除了" + rows + "条数据");
} else {
System.out.println("删除数据失败");
}
sqlSession.commit();
sqlSession.close();
}
- 结果:
运行前:
运行后:看到id=4的数据被删除了。
附录:maven依赖:
<dependencies>
<!-- mysql的依赖jar包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!-- mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
<!--用于测试的jar包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.1</version>
</dependency>
</dependencies>