Java高级框架——Mybatis(二)

十.三种查询方式

1. selectList()返回值为List<resultType属性控制>

  1.1 适用于查询结果都需要遍历的需求

List<Flower> list = session.selectList("a.b.selAll");
for(Flower flower : list)
{
System.out.println(flower.toString());
 
}

 

2. selectOne()返回值Object

  2.1 适用于返回结果只是一个变量或一行数据值

    int count = session.selectOne("a.b.selById");

    System.out.println(count);

3. selectMap() 返回值Map

  3.1 适用于需要在查询结果中快速通过某列的值取到这行数据的需求

    Map<Object , Object> map = session.selectMap("a.b.c" , "name123");

    System.out.println(map);

  3.2 Map<key,resultType控制>

十一. 路径

1. 编写路径为了告诉编译器如何找到其他资源.

2. 路径分类

  2.1 相对路径: 从当前资源出发找到其他资源的过程

  2.2 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其他资源的过程

    2.2.1 标志: 只要以/开头的都是绝对路径

3. 绝对路径:

  3.1 如果是请求转发 / 表示项目根目录(WebContent)

  3.2 其他重定向,<img/> <script/>,<style/>,location.href /都表示服务器根目录(tomcat/webapps 文件夹)

4. 如果客户端请求的控制器,控制器转发到JSP,jsp中如果使用相对

路径,需要按照控制器的路径去找其他资源. 4.1 保险办法:使用绝对路径,可以防止上面的问题

十二.MyBatis 实现新增

1. 概念

  1.1 功能:从应用程序角度出发,软件具有哪些功能.

  1.2 业务:完成功能时的逻辑.对应 Service 中一个方法

  1.3 事务:从数据库角度出发,完成业务时需要执行的 SQL 集合,称一个事务.

    1.3.1 事务回滚.如果在一个事务中某个 SQL 执行事务,希望回归到事务的原点,保证数据库数据的完整性.

2. mybatis 中默认是关闭了 JDBC 的自动提交功能

  2.1 每一个 SqlSession 默认都是不自动提交事务.

  2.2 session.commit()提交事务.

  2.3 openSession(true);自动提交.setAutoCommit(true);

3. mybatis 底层是对 JDBC 的封装.

  3.1 JDBC executeUpdate()执行新增,删除,修改的 SQL.返回值 int, 表示受影响的行数.

   3.2 mybatis <insert> <delete> <update>标签没有 resultType 属性, 认为返回值都是 int

4. openSession()Mybatis 会创建 SqlSession 时同时创建一个

Transaction(事务对象),同时 autoCommit 都为 false

  4.1 如果出现异常,应该 session.rollback()回滚事务.

5. 实现新增的步骤

  5.1 mapper.xml 中提供<insert>标签,标签没有返回值类型

    

<insert id="ins" parameterType="People">
    insert into people values(default,#{name},#{age})
</insert>

 

  5.2 通过 session.insert()调用新增方法

int index1 = session.insert("a.b.ins", p);
if(index1>0){
System.out.println("成功");
}else{
System.out.println("失败");
}

 

原文地址:https://www.cnblogs.com/lwcwj/p/10523442.html