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 类型参数的构造方法,根 ...
随机推荐
- sqlalchemy执行sql语句
#删除user表中的所有数据,表中的自增字段又从默认值开始 session.execute("truncate table user")
- Oracle数据仓库套件
OBIEE RPD:定义不同分析的主题角度,确定相应的事实表和维度表 报表层:选取需要的维度和度量,根据筛选器选取需要的数据 可视化:用图形展示数据,支持常见的图形:如折线图,饼图,堆叠图等. ODI ...
- PCP
1, What is PCP?Prior Comparable Period2, Why needs PCP?This is to compare the value with history val ...
- Java中对List集合的常用操作
目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...
- ubuntu下编译小知识点
#改变编译器选项 SET(CMAKE_C_COMPILER"g++") #出现如下错误:添加C++11特性 #error: #error This file requires co ...
- 你想知道吗?come
从大二接触Java开始,到现在也差不多三个年头了.从最基础的HTML.CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过.失落过.寂寞过.虽然是半道出家但是经过自己的努力也算是完成了“学业” ...
- mysql 安装不了的问题解决
MySQL Won't Install on Ubuntu 11.04 Ask Question up vote 1 down vote favorite It was working fine be ...
- RESTful摘要
一种标准的模式的格式化URL为 /version/resource/key 例如,映射一个标识为"rasmus"的人 /v1/people/rasmus 安全性:安全的方法,获取资 ...
- MySQL Execution Plan--IN子查询包含超多值引发的查询异常1
======================================================================= SQL语句: SELECT wave_no, SUM(I ...
- k8s基于CA签名的双向数字证书认证(三)
1.设置kube-apiserver的CA证书相关的文件和启动参数 1)创建CA证书和私钥相关的文件 openssl genrsa -out ca.key openssl req -x509 -n ...