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("失败");
}
Java高级框架——Mybatis(二)的更多相关文章
- Java 高级框架——Mybatis(一)
一, SQl复习 a,数据库SQL命令 创建数据库并指定编码 Create database 数据库名 default character set utf8 create database ssm d ...
- Java高级框架------Spring(二)
五.如何给Bean的属性赋值(注入) 1. 通过构造方法来赋值 2. 设置注入(通过set方法) 2.1 如果属性是基本类型或String等简单 <bean id="peo" ...
- java 持久框架mybatis的初步学习
什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...
- Java高级框架-----Spring(一)
一: 1. Spring几大核心功能: IOC/DI 控制反转/依赖注入 AOP 面向切面编程 声明式事务 2. Spring 框架的的runtime 2.1 test:Spring提供测试功能 2. ...
- java集合框架(二):HashTable
HashTable作为集合框架中的一员,现在是很少使用了,一般都是在面试中会问到其与HashMap的区别.为了能在求职的时候用上场,我们有必要对其原理进行解读. HashTable的实现原理跟Hash ...
- Java高级规范之二
二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能 ...
- Java高级篇(二)——网络通信
网络编程是每个开发人员工具相中的核心部分,我们在学习了诸多Java的知识后,也将步入几个大的方向,Java网络编程就是其中之一. 如今强调网络的程序不比涉及网络的更多.除了经典的应用程序,如电子邮件. ...
- Java高级类特性(二)
一.static关键字 static关键字用来声明成员属于类,而不是属于类的对象.1). static (类)变量类变量可以被类的所有对象共享,以便与不共享的成员变量区分开来. static变量也称作 ...
- Java 集合框架(二)—— ArrayList
二.数组列表 —— ArrayList 1.构造方法 ArrayList 是 Java 中的动态数组,底层实现就是对象数组,只不过数组的容量会根据情况来改变. 它有个带 int 类型参数的构造方法,根 ...
随机推荐
- css的各种动画
/*淡入*/@keyframes fade-in { 0% { opacity: 0; } /*初始状态 透明度为0*/ 40% { opacity: 0; } /*过渡状态 透明度为0*/ 100% ...
- python基础(五)
一.os模块 import os# os.rename(old,new)#重命名# os.remove(f)#删除文件 # os.mkdir('china/beijing') #创建文件夹# os.m ...
- Spring Boot Logback日志配置
logback的使用: Logback的默认配置 如果配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默认地会调用BasicConfigurat ...
- vb.net
vb.net 教程: https://www.yiibai.com/vb.net/vb.net_overview.html vb.net 教程 https://www.w3cschool.cn/vb_ ...
- Matlab 2017b遇到绘图低级错误
解决方案: 命令窗口中输入:opengl('save','software') 回车 重启软件
- time模块的用法和转化关系
Time模块的用法和互相转化关系 UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Savin ...
- composer.json
{ "require": { "doctrine/doctrine-orm-module": "0.*", ...
- 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?
https://blog.csdn.net/Iperishing/article/details/86674084
- WinForm中使用BackgroundWorker异步加载数据并使用进度条
在WinForm程序中,有时会因为加载大量数据导致UI界面假死,这种情况对于用户来说是非常不友好的.因此,在加载大量数据的情况下,首先应该将数据加载放在另一线程中进行,这样保证了UI界面的响应:其次可 ...
- SQL语句整理2