设计需求 查询数据库,查询得到男性或女性的数量,如果传入的参数是0查询女性,否则查询男性. 准备数据库表和存储过程 1.准备person表: CREATE TABLE person( id INT PRIMARY KEY AUTO_INCREMENT, NAME ), sex ) ); INSERT INTO person(NAME,sex) VALUES('A',"m"); INSERT INTO person(NAME,sex) VALUES('B',"f");…
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name ), sex ) ); 6 insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert into p_use…
虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁移.所以进行复习了一下.下面是一些存储过程的例子. 1. 例子1 DELIMITER // DROP PROCEDURE IF EXISTS loginandreg // CREATE PROCEDURE loginandreg( OUT userId BIGINT, ), ), ) ) BEGIN…
1.框架的概念 框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统.简单说就是使用别人搭好的舞台,你来做表演.而且,框架一般是成熟的,不断升级的软件.框架是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题. 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能,大大提高开发效率. 2.三层架构 表现层:是用于展示数据的 业务层:是处理业务需求 持久层:是和数据库交互的 3.持久层技术解决方案 (1)JDBC技术: Connection Prepa…
Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. Mybatis开发环境准备 1.创建测试项目,普通的Java项目就可以,项目结构如下图所示: 2.添加相应的jar包 mybatis:myba…
一框架介绍 1.Mybatis介绍 ​ MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis.是一个基于Java的持久层框架. ​ Mybatis本质和Hibernate等持久层框架一样,底层均是基于jdbc的,作用均是实现数据的持久化. 2.Mybatis和Hibernate对比 对比项 Mybatis Hibernate 底层原理 基于jdbc 基于jd…
一.什么是框架 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能 大大提高开发效率 二.三层框架 表现层: 用于展示数据 业务层: 是处理业务需求 持久层: 是和数据库交互的 三.持久层技术解决方案 JDBC技术: Connection PreparedStatement ResultSet Spring的JdbcTemplate Spring中对jdbc的简单封装 Apache的DBUtils: 它和Sp…
三层架构: 表现层:用于展示数据 业务层:处理业务需求 持久层:和数据库交互的 3.持久层技术解决方案: JDBC技术: Connecction PreparedStatement ResultSet Spring的JdbcTemplate APACHE的Dbutils 以上都不是框架, JDBC是规范 Spring中的JDBCTEMPLATE和Apache中的DBUtils都只是工具类 4.mybatis的概述 mybatis是一个持久层框架,用java编写 它封装了jdbc操作的很多细节,使…
一对一关联 创建表和数据:创建一张教师表和班级表,这里假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name ) ); CREATE TABLE class( c_id INT PRIMARY KEY AUTO_INCREMENT, c_name ), teacher_id INT ); ALTER TABLE class ADD CONSTRA…
在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定是完全相同的. 1.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no ), order_price FLOAT ); ); ); ); 查看数据表: 2.定义实体类 package com.fpc.Entity; public class Order { //Order实体类中属性名和orders表中的字段名是不一样…
连接数据库的配置单独放在一个properties文件中 之前,是直接将数据库的连接配置信息卸载了Mybatis的conf.xml文件中,如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-…
使用MyBatis对表执行CRUD操作——基于XML的实现 1.创建(create)用户:在userMapper.xml文件中增加: <!-- 创建用户Create --> <insert id="addUser" parameterType="com.fpc.Entity.User"> insert into users(name,age) values(#{name},#{age}) </insert> 在测试类测试: Str…
第7讲 事务 7.1 事务的概念 事务是一系列作为一个逻辑单元来执行的操作集合. 它是数据库维护数据一致性的单位,它讲数据库从一个一致状态,转变为新的另外一个一致状态.说的简单一点就是:如果一组处理步骤要么全部成功,要么全部失败,这样就保证了数据始终一致的状态. 维护了数据的完整和可靠性. 7.2 jdbc处理事务的逻辑 7.3 事务的属性 事务的4个属性:原子性.一致性.隔离性.持续性.这四个属性通常称为ACID特性. 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括…
1: mapper映射文件输出映射(输入类型) 2:resultType的使用 3:resultMap的使用 3:总结&下节预告 本文是<凯哥陪你学系列-框架学习之mybatis框架学习>中第十二篇 mapper映射文件之输出映射 声明:本文系凯哥Java(www.kaigejava.com)原创,未经允许,禁止转载! 一: mapper映射文件输出映射(输入类型) 1.1:mapper.xml文件中那个是输出映射(输出类型)? mapper映射文件输出映射(输入类型) 上图中的res…
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念,是把我们程序中的类与类之间的依赖关系交给容器去处理,一般有两种方式(面试): 依赖查找DL(dependency lookup):程序提供查找方式,交给容器去查找(相当于se中的回调函数): 依赖注入DI(dependency injection):程序不提供查找方式,提供合适的构造方法或者set…
深入Mybatis框架 学习了Spring之后,我们已经了解如何将一个类作为Bean交由IoC容器管理,也就是说,现在我们可以通过更方便的方式来使用Mybatis框架,我们可以直接把SqlSessionFactory.Mapper交给Spring进行管理,并且可以通过注入的方式快速地使用它们. 因此,我们要学习一下如何将Mybatis与Spring进行整合,那么首先,我们需要在之前知识的基础上继续深化学习. 了解数据源 在之前,我们如果需要创建一个JDBC的连接,那么必须使用DriverMana…
本文转载自:http://www.cnblogs.com/jpf-java/p/6013518.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_user(name,sex) values('A',"男&…
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_user(name,sex) values('A',"男"); 8 insert into p_user(name,sex) values('B',&qu…
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name ), sex ) ); insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert into p_user(…
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_user(name,sex) values('A',"男"); 8 insert into p_user(name,sex) values('B',&qu…
一.返回select结果集 1.创建存储过程 DELIMITER // DROP PROCEDURE IF EXISTS proc_queryUser; CREATE PROCEDURE proc_queryUser( ) CHARACTER SET utf8 ) BEGIN SET @exeSql = CONCAT('SELECT id,username,sex,birthday,address ', 'from t_user where username like \'',user_name…
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4270352.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_user(name,sex) values('A'…
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name ), sex ) ); insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert into p_user(…
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name varchar(10), sex char(2) ); insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); ins…
输入参数:parameterType(两种取值符号) 1.类型为简单类型 区别:     (1) #{可以为任意值}         ${vaue}--->标识符只能是value     (2)#{}  自动给String类型加上‘’--->自动类型转换         ${}  原样输出 --->适合于动态字段进行动态排序     (3)#{}  防止sql注入         ${}  不防止 相同之处:     (1)都可以获取对象的值(嵌套类型对象)   2.对象类型     …
一.简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工…
这一篇博客我们学习一下Mybatis调用存储过程的使用和运行流程.首先我们先创建一个简单的存储过程 DELIMITER $ CREATE PROCEDURE mybatis.ges_user_count(IN age INT, OUT user_count INT) BEGIN SELECT COUNT(*) FROM users WHERE users.age=age INTO user_count; END $ 这个存储过程的含义其实比较简单的,就是输入age,然后执行select coun…
与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和视图管理, MyBatis作为数据对象持久化引擎.这样搭配的优点是:轻量.自由度高.Spring与Spring MVC契合度更好.通过一个图书管理示例完成SSM框架的集成,可以将前面学习过的一些内容整合起来,使用到的知识包含:Spring.Spring MVC.MyBatis.JSR303校验.分页…
http://blog.csdn.net/yerenyuan_pku/article/details/71700957 使用MyBatis开发Dao层,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.本文案例代码的编写是建立在前文MyBatis框架的学习(二)——MyBatis架构与入门案例基础之上的! 需求 明确开发需求,在实际开发中,我们总归是要开发Dao层的,所以在本文中我使用MyBatis这个框架技术开发Dao层来将以下功能一一实现: 根据用户id查询一个用户信息 根据用…
1.动态SQL 1.1 什么是动态SQL? 动态SQL就是通过传入的参数不一样,可以组成不同结构的SQL语句. 这种可以根据参数的条件而改变SQL结构的SQL语句,我们称为动态SQL语句.使用动态SQL可以提高代码重用性. 1.2 XML方式的实现 1.2.1 需要使用到的标签 <if> 用于判断,类似java的if(){}<foreach>一般用户批量处理的SQL语句,类似java的foreach循环,<trim> :切割标签,主要用于切割关键字的头和尾的字符.新版的…