十.三种查询方式

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("失败");
}

Java高级框架——Mybatis(二)的更多相关文章

  1. Java 高级框架——Mybatis(一)

    一, SQl复习 a,数据库SQL命令 创建数据库并指定编码 Create database 数据库名 default character set utf8 create database ssm d ...

  2. Java高级框架------Spring(二)

    五.如何给Bean的属性赋值(注入) 1. 通过构造方法来赋值 2. 设置注入(通过set方法) 2.1 如果属性是基本类型或String等简单 <bean id="peo" ...

  3. java 持久框架mybatis的初步学习

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...

  4. Java高级框架-----Spring(一)

    一: 1. Spring几大核心功能: IOC/DI 控制反转/依赖注入 AOP 面向切面编程 声明式事务 2. Spring 框架的的runtime 2.1 test:Spring提供测试功能 2. ...

  5. java集合框架(二):HashTable

    HashTable作为集合框架中的一员,现在是很少使用了,一般都是在面试中会问到其与HashMap的区别.为了能在求职的时候用上场,我们有必要对其原理进行解读. HashTable的实现原理跟Hash ...

  6. Java高级规范之二

    二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能 ...

  7. Java高级篇(二)——网络通信

    网络编程是每个开发人员工具相中的核心部分,我们在学习了诸多Java的知识后,也将步入几个大的方向,Java网络编程就是其中之一. 如今强调网络的程序不比涉及网络的更多.除了经典的应用程序,如电子邮件. ...

  8. Java高级类特性(二)

    一.static关键字 static关键字用来声明成员属于类,而不是属于类的对象.1). static (类)变量类变量可以被类的所有对象共享,以便与不共享的成员变量区分开来. static变量也称作 ...

  9. Java 集合框架(二)—— ArrayList

    二.数组列表 —— ArrayList 1.构造方法 ArrayList 是 Java 中的动态数组,底层实现就是对象数组,只不过数组的容量会根据情况来改变. 它有个带 int 类型参数的构造方法,根 ...

随机推荐

  1. vue插件

    Vue.js提供了插件机制,可以在全局添加一些功能.它们可以简单到几个方法.属性,也可以很复杂,比如一整套组件库. 注册插件需要一个公开的方法install,它的第一个参数是Vue构造器,第二个参数是 ...

  2. postman连续添加多个订单&jmeter快速审核添加订单

    预期效果:添加多个订单,并审核(半自动?) 1.postman添加多个订单 post请求(postman基础的操作比较简单,网上有很详细的解说),单个接口保存[save] 单个接口保存[save],点 ...

  3. svo_udp通信02——一组数据发送

    注意事项: 1.client 和server 定义的发送和接收数据(结构)要相同.如: client.c: struct position_packet {float pos_x[5];float p ...

  4. io读取遇到的问题

    使用Inputstream输入流读取数据的时候总要使用一个额byte[]数组进行读取 byte[] b= new byte[1024]; while((len = in.read(b)) != -1) ...

  5. 转:Excel—“撤销工作表保护密码”的破解并获取原始密码

    在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能, ...

  6. zabbix4.0离线快速编译安装(编译安装方法)

    本博客已整理更新至第二版.更新与2019.4.17 其实这个主要是想试一下离线编译安装的具体步骤,记得要配置好本地yum云,因为我们需要使用yum,yum能帮我们自动解决很多依赖问题.发现最主要的问题 ...

  7. bond模式

    1.mode=0(balance-rr)(平衡抡循环策略) 链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路.交换机需要配置聚合口,思科叫port channel.特点:传输数据包顺序 ...

  8. create-react-app源码解读之为什么不搞个山寨版的create-react-app呢?

    最近把 vue-cli@2.x 和 create-react-app 的源码都看了一遍.由于现在官方推荐使用 vue-cli@3.0 ,改动比较大,所以就不写关于 vue-cli 的了(据说是因为 v ...

  9. 1.1.26 word内容导入PPT

    1.在开始菜单栏选择[视图]>[大纲].进入大纲后,对文本设置大纲级别. 2.设置好后,在[word选项]>下拉菜单中找到[不在功能区命令]>选择[发送到PPT].

  10. angular2的ElementRef在组件中获取不到

    angular2的ElementRef在组件中获取不到 angular2不推荐操作dom,但是实际应用中不可避免的需要使用到dom操作,怎么操作,官方文档提供了一系列api(ElementRef,Vi ...