1,使用idea创建一个maven项目,导入以下依赖,分别为数据库依赖,mybatis依赖,单元测试,注解工具包(后两个依赖可以不导入)。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
2,在数据库中创建user表,以及创建一个对应的类(该类需要属性私有,有无参构造,get/set方法,可使用@data注解),如下:
3,编写mapper标签中配置的接口。分别对应增删改
public interface userDao {
public int insertUser(user user);
public void updateUser(user user);
public void deletsUser(int id);
}
4,编写XML配置文件:编写sql语句,以及配置第三步编写的类,方法
mapper里namespace对应是第三步的接口类,包含了三个标签insert,update,delete,分别对应sql中增改删,每个标签中的id对应了这个接口的方法,
paramterType为传入参数,可以传入一个具体类,sql语句中使用#{}来代替展位符,#{id}对应了user类中id属性!删除的例子中,paramterType参数为int,#{id},id对应的调用改方法时传入的参数!
<mapper namespace="com.hys.mybatis.dao.userDao">
<insert id="insertUser" parameterType="com.hys.mybatis.pojo.user">
insert into school.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
<update id="updateUser" parameterType="com.hys.mybatis.pojo.user">
update school.user set pwd=#{pwd} where id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from school.user where id=#{id}
</delete>
</mapper>
5 代码测试,其中sqlsession的获取,可以看我第一篇文章Mybatis入门(一),sqlsession这个对象获取是固定的,把获取的代码写在一个工具类,省得每次写
sqlsession获取上面所写的mapper,然后调用具体方法进行测试。除了查询,增删改都需要进行事务!!!!,需要提交!!!
@Test
public void insertUser(){
SqlSession sqlSession = mybatisUtil.getSqlSession();
userDao mapper = sqlSession.getMapper(userDao.class);
mapper.insertUser(new user(7, "赵六", "123456"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession = mybatisUtil.getSqlSession();
userDao mapper = sqlSession.getMapper(userDao.class);
mapper.updateUser(new user(2,"88888","8888888"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
SqlSession sqlSession = mybatisUtil.getSqlSession();
userDao mapper = sqlSession.getMapper(userDao.class);
mapper.deleteUser(2);
sqlSession.commit();
sqlSession.close();
}