版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lyj4495673/article/details/82834341
回顾
1.了解定义,知道mybatis的作用
2.搭建简单mybatis架构
3.写出简单的测试代码进行测试
对数据库表进行操作
通过Mybatis-01的简单介绍我们可以进行简单的查询操作,接下来我们对数据库表的操作进行升华。
- 插入数据
在src文件下新建包(com.atguigu_mybatisTest),在包下新建xml文件(userMapper)用来定义sql的映射文件
<!--parameterType参数类型,对应包下的实体类-->
<insert id = "addUser" parameterType="com.atguigu_mybatis.Test1.User">
<!-- value 里必须写对象里main的某一个属性-->
insert into users(name,age)values(#{name},#{age}
</insert>
在配置文件中对新建的mapper文件进行配置,使其能顺利加载sql映射文件mapper.xml文件
<mappers>
<!--去找mapper的文件位置-->
<mapper resource="com/atguigu/mybatis/test2/userMapper.xml"/>
</mappers>
在dao层进行调用
public class Test2 {
@Test
public void testAdd(){
String resource = "conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
String statement ="com.atguigu_mybatis.Test2.userMapper"+".addUser";
//将地址以参数的形式传入,第一个id,我们不需要(-1)
int insert = session.insert(statement,new User(-1,"kk",23));
session.commit();
System.out.println(insert);
}
}
结果展示
- 其他操作
<!--可按上述步骤进行简单测试-->
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>
<update id="updateUser" parameterType="com.atguigu.day03_mybatis.Test1.User">
upsate users set name=#{name},age#{age}where id=#{id}
</update>
<mappers>
<!--去找mapper的文件位置-->
<!--注意在Mapper文件里注册的是class,接口-->
<mapper class ="com.atguigu.mybatis.test3.UserMapper"/>
</mappers>
两种方式
- 通过xml文件来写SQL语句
- 基于注解的实现,将sql语句写到注解里,再创建一个接口,并在conf.xml里注册一下
public interface UserMapper{
//将sql语句通过注解执行
@Insert("insert into users(name,age)values(#{name},#{age})")
public int add(User user);
public int deleteById(Int id);
public int update(User user);
public User getById(int id);
public List<User>getAll();
}
问题总结
在写测试类的时候,发现测试类不能运行,并报错
这时我们要引入Junit和hamcrest-core的jar包