二、SQL语句映射文件(2)增删改查、参数、缓存

合集下载

SQL语句的增删改查

SQL语句的增删改查

3).在查询中使用AS更改列名
例:select name as 姓名 from a where gender='男'
说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示
4).查询空行
例:select name from a where email is null
from Strdents
注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致
二、删:有2中方法
1.使用delete删除数据某些数据
语法:delete from <表名> [where <删除条件>]
2.模糊查询
1).使用like进行模糊查询
注意:like运算副只用语字符串,
例:select * from a where name like '赵%'
说明:查询显示表a中,name字段第一个字为赵的记录
2).使用between在某个范围内进行查询
例:delete from a where name='王伟华'(删除表a中列值为王伟华的行)
注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名
2.使用truncate table 删除整个表的数据
语法:truncate table <表名>
注意:如果省略表名,将依次插入所有列
2.使用insert,select语句将现有表中的 数据添加到已有的新表中
语法:insert into <已有的新表> <列名> select <原表列名> from <原表名>

visualstudio2019连接SQLServer数据库,增删改查详细教程(C#代码)

visualstudio2019连接SQLServer数据库,增删改查详细教程(C#代码)

visualstudio2019连接SQLServer数据库,增删改查详细教程(C#代码)⼯具:1.Visual Studio 20192.SQL Server数据库(我使⽤的2008)操作:1.打开SQL Server,打开后会看到数据库的初始链接界⾯。

(如下图)2..复制上图中的“服务器名称”,然后点击“连接”,进⼊数据库。

3.打开vs,创建好⾃⼰要⽤的项⽬,我写的项⽬名称叫做:‘finnal_test’,要做的是数据库综合实习关于奖学⾦评定的管理系统4.⼯具->连接到数据库->在服务器名⾥⾯,粘贴复制的服务器名5.在下⾯选择⾃⼰要连接的数据库名称(也可以⼿动输⼊,我连接的是我⾃⼰创建的数据库:shaohui),确定6.打开“服务器资源管理器”,会看到有下图信息,点击“表”可以看到数据库⾥⾯创建的数据表连接代码:完成上述操作后只是把数据库添加到了vs⾥,要想在项⽬⾥对数据库进⾏编辑,还需要写⼀些代码。

1.打开⾃⼰的项⽬,选择项⽬->添加类类名⾃⼰起,我这⾥是SQLServerDataBase2.打开类⽂件,写⼊以下代码。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Threading.Tasks;//必要的命名空间namespace finnal_test{class SQLServerDataBase//MySqlCon部分,每个⼈不相同,后⾯我会进⾏说明,下⾯的是我计算机相应的配置private string MySqlCon = "Data Source=DESKTOP-8LDERGD\\SQLEXPRESS;Initial Catalog = shaohui; Integrated Security = True";public DataTable ExecuteQuery(string sqlStr)//⽤于查询;其实是相当于提供⼀个可以传参的函数,到时候写⼀个sql语句,存在string⾥,传给这个函数,就会⾃动执⾏。

[SSM]Mapper.xml的sql语句

[SSM]Mapper.xml的sql语句

[SSM]Mapper.xml的sql语句⼀、增删改查1. 增:给数据库增加⼀个⽤户<insert id="addUser"parameterType="User">insert into user (id,name,pwd) values (#{id},#{name},#{pwd})</insert>2. 删:根据id删除⼀个⽤户<delete id="deleteUser"parameterType="int">delete from user where id = #{id}</delete>3. 改:修改⽤户的信息<update id="updateUser"parameterType="User">update user set name=#{name},pwd=#{pwd} where id = #{id}</update>4. 查:根据id查询⽤户<select id="selectUserById"resultType="User">select * from user where id = #{id}</select>⼆、参数的传递1. 直接在⽅法中传递参数在接⼝⽅法的参数前加 @Param属性,Sql语句编写的时候,直接取@Param中设置的值即可,不需要单独设置参数类型。

接⼝所有的普通参数,尽量都写上@Param参数,尤其是多个参数时,必须写上!User selectUserById(@Param("id") Int id);User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);如果参数是pojo类,那么就不⽤加@Param属性int addUser(User user);参数直接传递时,对应的mapper.xml语句和上⾯的⼀样2. 使⽤万能的Map如果参数过多,我们可以考虑直接使⽤Map实现,如果参数⽐较少,直接传递参数即可User selectUserByNP2(Map<String,Object> map);使⽤map传参时,对应的mapper.xml需要对应修改:<select id="selectUserByNP2"parameterType="map"resultType="User">select * from user where name = #{username} and pwd = #{pwd}</select>三、⼤于⼩于和xml标签解析冲突的写法1. 使⽤转义字符字符>>=<<="’&转义字符&gt;&gt;=&lt;&lt;=&quot;&apos;&amp; where create_date_time >=#{startTime}//改为where create_date_time &gt;=#{startTime}2. 将sql语句写在 <![CDATA[...]]> 中, 其中的特殊符号不进⾏解析.where create_date_time <![CDATA[>=]]>#{startTime}四、#{}和${}的区别#{}是预编译处理,${}是字符串替换。

sql语句增删改查

sql语句增删改查

SQL语句增删改查介绍SQL(Structured Query Language)是用于访问和管理关系型数据库的标准化语言。

通过使用SQL语句,我们可以实现对数据库的增加、删除、修改和查询等操作。

本文将介绍SQL中的增加(INSERT)、删除(DELETE)、修改(UPDATE )和查询(SELECT)语句的使用方法及示例。

增加数据(INSERT)INSERT语句用于向数据库表中插入新的数据。

语法如下:INSERT INTO表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);其中,INSERT INTO 表名表示插入数据到指定的表中。

列1、列2、列3表示要插入的数据列,而对应的值1、值2、值3则表示要插入的具体数据。

以下是一个实例,展示如何向名为users的表中插入一条新的用户数据:INSERT INTO users (id, name, age, email) VALUES (1, 'John Doe', 25, '********************');在执行该语句后,名为users的表中将新增一条记录,包括4个列:id、name 、age和email。

删除数据(DELETE)DELETE语句用于从数据库中删除数据。

语法如下:DELETE FROM表名WHERE条件;其中,DELETE FROM 表名表示从指定的表中删除数据。

条件部分用于指定要删除的数据,可以使用WHERE子句来设置删除的条件。

以下是一个实例,展示如何从名为users的表中删除所有年龄小于18岁的用户:DELETE FROM users WHERE age <18;执行该语句后,所有年龄小于18岁的用户将从users表中被删除。

修改数据(UPDATE)UPDATE语句用于更新数据库中的数据。

语法如下:UPDATE表名SET列1=值1, 列2=值2, ... WHERE条件;其中,UPDATE 表名表示更新指定的表。

在 C# 中使用 SQL 执行增删查改操作

在 C# 中使用 SQL 执行增删查改操作

在C# 中使用SQL 执行增删查改操作,通常需要使用SqlConnection连接数据库,SqlCommand执行SQL 语句,以及SqlDataReader读取查询结果。

以下是一个简单的示例,展示了如何使用C# 进行增删查改操作。

1. 添加必要的命名空间首先,确保你已经添加了必要的命名空间:using;using..;2. 连接字符串定义数据库连接字符串:string="Server=your_server_name;Database=your_database_na me;User Id=your_username;Password=your_password;";3. 插入数据(Insert)public void InsertData(string,int){using(SqlConnection=new SqlConnection()) {string="INSERT INTO Users (Name, Age) VALUES (@Nam e, @Age)";SqlCommand=new SqlCommand(,);..AddWithValue("@Name",);..AddWithValue("@Age",);.Open();int=.ExecuteNonQuery();.WriteLine($"{}row(s) inserted.");}}4. 删除数据(Delete)public void DeleteData(int){using(SqlConnection=new SqlConnection()) {string="DELETE FROM Users WHERE Id = @Id";SqlCommand=new SqlCommand(,);..AddWithValue("@Id",);.Open();int=.ExecuteNonQuery();.WriteLine($"{}row(s) deleted.");}}5. 查询数据(Select)public void SelectData(){using(SqlConnection=new SqlConnection()) {string="SELECT * FROM Users";SqlCommand=new SqlCommand(,);.Open();SqlDataReader=.ExecuteReader();while(.Read()){int=.GetInt32(0);string=.GetString(1);int=.GetInt32(2);.WriteLine($"Id: {}, Name: {}, Age: {}");}.Close();}}6. 更新数据(Update)public void UpdateData(int,string,int){using(SqlConnection=new SqlConnection()) {string="UPDATE Users SET Name = @Name, Age = @Age WHERE Id = @Id";SqlCommand=new SqlCommand(,);..AddWithValue("@Name",);..AddWithValue("@Age",);..AddWithValue("@Id",);.Open();int=.ExecuteNonQuery();.WriteLine($"{}row(s) updated.");}}7. 调用示例class Program{static void Main(string[]){string="Server=your_server_name;Database=your_dat abase_name;User Id=your_username;Password=your_password;";// 插入数据InsertData("John Doe",30);// 查询数据SelectData();// 更新数据UpdateData(1,"Jane Doe",28);// 删除数据DeleteData(1);}}注意事项1.异常处理:在实际应用中,建议添加异常处理机制,以捕获和处理可能出现的异常。

Mybatis3详解(四)----SQL映射文件详解(XxxMapper.xml)

Mybatis3详解(四)----SQL映射文件详解(XxxMapper.xml)

Mybatis3详解(四)----SQL映射⽂件详解(XxxMapper.xml)1映射器是Mybatis中最复杂并且是最重要的组件。

它由⼀个接⼝和xml映射⽂件(或者注解)组成。

在映射器中我们可以配置各类SQL、动态SQL、缓存、存储过程、级联等复杂的内容。

并且通过简易的映射规则映射到指定的POJO或者其它对象上,映射器能有效的消除JDBC的底层代码。

在Mybatis的应⽤程序开发中,映射器的开发⼯作量占全部⼯作量的80%,可见其重要性。

映射⽂件的作⽤是⽤来配置SQL映射语句,根据不同的SQL语句性质,使⽤不同的标签,其中常⽤的标签有:<select>、<insert>、<update>、<delete>。

下⾯列出了SQL 映射⽂件的⼏个顶级元素(按照应被定义的顺序列出):元素描述cache该命名空间的缓存配置(会在缓存部分进⾏讲解)cache-ref引⽤其它命名空间的缓存配置resultMap描述如何从数据库结果集中加载对象,它是最复杂也是最强⼤的元素parameterMap定义参数映射。

此元素已被废弃,并可能在将来被移除!请使⽤⾏内参数映射parameType。

所以本⽂中不会介绍此元素sql可被其它语句引⽤的可重⽤语句块select映射查询语句insert映射插⼊语句update映射更新语句delete映射删除语句2select元素表⽰SQL 的select 语句,⽤于查询,⽽查询语句是我们⽇常中⽤的最多的,使⽤的多就意味它有着强⼤和复杂的功能,所以我们先来看看select元素的属性有哪些(加粗为最常⽤的)。

select元素中的属性属性描述id在命名空间中唯⼀的标识符,可以被⽤来引⽤这条语句parameterType将会传⼊这条语句的参数类的完全限定名或别名。

这个属性是可选的,因为 MyBatis 可以通过类型处理器(TypeHandler)推断出具体传⼊语句的参数,默认值为未设置(unset)parameterMap这是引⽤外部 parameterMap 的已经被废弃的⽅法。

sql增删改查语句

sql增删改查语句当今信息技术发展迅速,SQL语言也深入人心,成为编码者、数据库管理者和数据库开发者最重要的工具之一。

SQL,全称Structured Query Language,是一种用于指令式编程的标准化语言,可以帮助用户和开发者快速地访问,更新和管理数据库中的数据。

本文将深入讨论SQL增删改查语句,以及这些语句的应用场景以及特点。

1. SQL增删改查语句SQL中的增删改查语句是指数据库操作增删改查的语句,即Create(增)、Drop(删)、Update(改)和Select(查)这四条操作语句,通常简称为CRUD语句。

a.增加语句是使用SQL语言创建一个新表或视图的语句。

最常用的增加语句是CREATE TABLE,它创建一个新的表,其中包括列、行和数据类型。

b.使用“删除”语句可以从数据库中删除表、视图或其他数据库对象。

DROP TABLE是最常用的删除语句,它可以从数据库中删除表,同时也会删除掉表中的所有数据。

c.UPDATE语句用于更改表中的行或列。

这种语句可以更改存储在表中的数据,也可以用来更改表结构,比如对表列、数据类型等进行更改。

d.SELECT是SQL中最常用的语句,用于从表中检索数据。

它可以检索多个列,以及多个表格。

此外,SELECT语句还可以用于筛选数据,以结果进行分组,以及排序数据。

2. SQL增删改查语句的应用场景SQL增删改查语句有着广泛的应用,主要在数据库应用开发中使用它们。

有时SQL也可以在数据挖掘、网络搜索、软件开发和网络分析中使用。

a.据库应用开发数据库应用开发是使用SQL增删改查语句最常见的应用场景。

开发者使用SQL增删改查语句在数据库中创建、更新和删除表,以及从数据库中查询数据。

b.据挖掘数据挖掘是分析海量数据的过程,其中会使用SQL增删改查语句,从数据库中读取、清理和分析数据。

c.络搜索网络搜索是网页搜索引擎的一个重要组成部分,它使用SQL语句来从数据库中检索数据,以回答搜索查询。

(完整word版)SQL常用的增删改查语句、视屏笔记

SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。

T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。

SQL的分类:(1):数据定义语言,DDL用来创建数据库和数据库中的各种对象数据库中的对象包括:表、视图、索引、存储过程、触发器DDL常用的命令包括:create、alter、drop(2):数据操纵语言,DML可以完成对数据库中数据的查询、更新、删除、插入的功能DML常用的命令包括:select、update、delete、insert(3)数据控制语言,DCLDCL常用的命令包括:grant、revoke、deny(4)数据类型1、数字数据类型a、整型数据类型:bigint、int、smallint、tinyintb、浮点数据类型:float、realc、固定精度数据类型:decimal、numericd、货币数据类型:money、smallmoney将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext区别char和varchar数据类型:char数据类型是存放固定长度的字符Varchar数据类型是存放动态长度的字符char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格1、insert语句:insert语句是属于SQL语言中的DML作用:为表插入数据你向一个表中插入一条新记录,但有一个字段没有提供数据。

在这种情况下,有下面的四种可能:1、如果该字段有一个缺省值(默认值),该值会被使用。

2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。

sql增删改查语句

sql增删改查语句SQLStructuredQueryLanguage,意为结构化查询语言,是一种用于存取和管理关系数据库中的信息的语言。

SQL言的通用功能,包括:查询数据、新增数据、修改数据和删除数据,分别用 SQL供的增删改查语句进行,这四条语句分别为 SELECT句、INSERT句、UPDATE 句和 DELETE句,其中包括两个条件语句:SELECT UPDATE。

1. SELECT句SELECT句用于从数据库中检索信息,它可以检索所有列和行,也可以检索指定列和行,它是 SQL言中最常用的语句。

SELECT句的语法形式如下:SELECT column1, column2, ...FROM table_nameWHERE condition;其中,SELECT SQL句中定义的关键字,遵循关键字 SELECT面是要检索的列名;FROM SQL句中定义的关键字,遵循 FROM面是要检索的表名;WHERE SQL句中定义的关键字,遵循 WHERE面是检索的条件。

2. INSERT句INSERT句用于把新的数据插入到表中,它有两种语法:第一种:插入所有列INSERT INTO table_nameVALUES (value1, value2, ...);其中,INSERT SQL句中定义的关键字,遵循关键字 INSERT面是要插入的表名;VALUES SQL句中定义的关键字,遵循 VALUES面是插入的数值。

第二种:插入部分列INSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);其中,INSERT SQL句中定义的关键字,遵循关键字 INSERT面是要插入的列名;VALUES SQL句中定义的关键字,遵循 VALUES面是插入的数值。

3. UPDATE句UPDATE句用于更新表中的数据,语法如下:UPDATE table_nameSET column1=value1, column2=value2, ...WHERE condition;其中,UPDATE SQL句中定义的关键字,遵循关键字 UPDATE面是要更新的表名;SET SQL句中定义的关键字,遵循 SET面是要更新的列名,等号左边为列名,右边为新值;WHERE SQL句中定义的关键字,遵循 WHERE面是更新的条件。

SQL增删查改语法

一、增:有4种方法1.使用insert插入单行数据:语法:insert [into] <表名> [列名] values <列值>例:insert into Students (姓名,性别,出生日期) values ('风の轩','男','1986/5/1')注意:into可以省略;列名列值用逗号分开;列值用单引号因上;如果省略表名,将依次插入所有列2.使用insert select语句将现有表中的数据添加到已有的新表中语法:insert into <已有的新表> <列名>select <原表列名> from <原表名>例:insert into tongxunlu ('姓名','地址','电子邮件')select name,address,emailfrom Students注意:into不可省略;查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致3.使用select into语句将现有表中的数据添加到新建表中语法:select <新建表列名> into <新建表名> from <源表名> 例:select name,address,email into tongxunlu from students注意:新表是在执行查询语句的时候创建的,不能够预先存在在新表中插入标识列(关键字‘identity’):语法:select identity (数据类型,标识种子,标识增长量) AS 列名into 新表from 原表名例:select identity(int,1,1) as 标识列,dengluid,password into tongxunlu from Struents注意:关键字‘identity’4.使用union关键字合并数据进行插入多行语法:insert <表名> <列名> select <列值> tnion select <列值>例:insert Students (姓名,性别,出生日期)select '风の轩,'男','1986/5/1' union(union表示下一行)select '风の轩2','男','19**/**/**'注意:插入的列值必须和插入的列名个数、顺序、数据类型一致二、删:有2中方法1.使用delete删除数据某些数据语法:delete from <表名> [where <删除条件>]例:delete from a where name='风の轩'(删除表a中列值为风の轩的行)注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名2.使用truncate table 删除整个表的数据语法:truncate table <表名>例:truncate table tongxunlu注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表三、查1.普通查询语法:select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]1).查询所有数据行和列例:select * from a说明:查询a表中所有行和列2).查询部分行列--条件查询例:select i,j,k from a where f=5说明:查询表a中f=5的所有行,并显示i,j,k3列3).在查询中使用AS更改列名例:select name as 姓名from a whrer xingbie='男'说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示4).查询空行例:select name from a where email is null说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行5).在查询中使用常量例:select name '唐山' as 地址from a说明:查询表a,显示name列,并添加地址列,其列值都为'唐山'6).查询返回限制行数(关键字:top percent)例1:select top 6 name from a说明:查询表a,显示列name的前6行,top为关键字例2:select top 60 percent name from a说明:查询表a,显示列name的60%,percent为关键字7).查询排序(关键字:order by , asc , desc)例:select namefrom awhere chengji>=60order by desc说明:查询表中chengji大于等于60的所有行,并按降序显示name列;默认为ASC升序2.模糊查询1).使用like进行模糊查询注意:like运算副只用语字符串,所以仅与char和varchar数据类型联合使用例:select * from a where name like '赵%'说明:查询显示表a中,name字段第一个字为赵的记录2).使用between在某个范围内进行查询例:select * from a where nianling between 18 and 20说明:查询显示表a中nianling在18到20之间的记录3).使用in在列举值内进行查询例:select name from a where address in ('北京','上海','唐山')说明:查询表a中address值为北京或者上海或者唐山的记录,显示name字段3.分组查询1).使用group by进行分组查询例:select studentID as 学员编号, A VG(score) as 平均成绩(注释:这里的score是列名)from score (注释:这里的score是表名)group by studentID说明:在表score中查询,按studentID字段分组,显示studentID字段和score字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达试,例如用一个列名作为参数的聚合函数2).使用having子句进行分组筛选例:select studentID as 学员编号, A VG(score) as 平均成绩(注释:这里的score是列名)from score (注释:这里的score是表名)group by studentIDhaving count(score)>1说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件,4.多表联接查询1).内联接①在where子句中指定联接条件例:select ,b.chengjifrom a,bwhere =说明:查询表a和表b中name字段相等的记录,并显示表a中的name字段和表b 中的chengji字段②在from子句中使用join…on例:select ,b.chengjifrom a inner join bon (=)说明:同上2).外联接①左外联接查询例:select ,c.courseID,c.scorefrom students as sleft outer join score as con s.score=c.studentID说明:在students表和score表中查询满足on条件的行,条件为score表的studentID与students表中的score相同②右外联接查询例:select ,c.courseID,c.scorefrom students as sright outer join score as con s.score=c.studentID说明:在students表和score表中查询满足on条件的行,条件为students表中的score与score表的studentID相同四、改使用update更新修改数据语法:update <表名> set <列名=更新值> [where <更新条件>] 例:update tongxunlu set 年龄=18 where 姓名='四、改使用update更新修改数据语法:update <表名> set <列名=更新值> [where <更新条件>] 例:update tongxunlu set 年龄=18 where 姓名='风の轩2'注意:set后面可以紧随多个数据列的更新值;where子句是可选的,用来限制条件,如果不选则整个表的所有行都被更新15. STRING与STRINGBUFFER的区别答:STRING的长度是不可变的,一旦一个String对象被创建,包含在这个实例中的内容("字符串")不可以被更改,直至这个对象被销毁,因此,指向一个String对象的变量实质上是一个常量,String对象也被称为常量对象;STRINGBUFFER的长度是可变的,可以通过StringBuffer的append()、insert()、reverse()、setCharAt()、setLength()等方法,可以对这个字符串中的内容修改。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.2 select一个select 元素非常简单。

例如:Xml代码1<!-- 查询学生,根据id -->2<select id="getStudent" parameterType="String" resultMap="studentResultMap">3SELECT ST.STUDENT_ID,4ST.STUDENT_NAME,5ST.STUDENT_SEX,6ST.STUDENT_BIRTHDAY,7ST.CLASS_ID8FROM STUDENT_TBL ST9WHERE ST.STUDENT_ID = #{studentID}10</select>这条语句就叫做…getStud ent,有一个String参数,并返回一个StudentEntity类型的对象。

注意参数的标识是:#{studentID}。

select 语句属性配置细节:属性描述取值默认id 在这个模式下唯一的标识符,可被其它语句引用parameterType传给此语句的参数的完整类名或别名resultTy pe 语句返回值类型的整类名或别名。

注意,如果是集合,那么这里填写的是集合的项的整类名或别名,而不是集合本身的类名。

(resultType 与resultMap 不能并用)resultM ap 引用的外部resultMap 名。

结果集映射是MyBatis 中最强大的特性。

许多复杂的映射都可以轻松解决。

(resultType 与resultMap 不能并用)flushCa che 如果设为true,则会在每次语句调用的时候就会清空缓存。

select 语句默认设为falsetrue|false falseuseCach e 如果设为true,则语句的结果集将被缓存。

select 语句默认设为false true|false falsetimeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定true|false falsetimeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定正整数未设置fetchSiz e 设置一个值后,驱动器会在结果集数目达到此数值后,激发返回,默认为不设值,由驱动器自己决定正整数驱动器决定stateme ntType statement,preparedstatement,callablestatement。

预准备语句、可调用语句STATEMENTPREPAREDCALLABLEPREPAREDresultSe tType forward_only,scroll_sensitive,scroll_insensitive只转发,滚动敏感,不区分大小写的滚动FORWARD_ONL YSCROLL_SENSITIVESCROLL_INSENSITIVE驱动器决定2.3 insert一个简单的insert语句:Xml代码11<!-- 插入学生-->12<insert id="insertStudent" parameterType="StudentEntity">13INSERT INTO STUDENT_TBL (STUDENT_ID,14STUDENT_NAME,15STUDENT_SEX,16STUDENT_BIRTHDAY, 17CLASS_ID)18V ALUES (#{studentID},19#{studentName},20#{studentSex},21#{studentBirthday},22#{classEntity.classID})23</insert>insert可以使用数据库支持的自动生成主键策略,设置useGeneratedKeys=”true”,然后把keyProperty 设成对应的列,就搞定了。

比如说上面的StudentEntity 使用auto-generated 为id 列生成主键.还可以使用selectKey元素。

下面例子,使用mysql数据库nextval('student')为自定义函数,用来生成一个key。

Xml代码24<!-- 插入学生自动主键-->25<insert id="insertStudentAutoKey" parameterType="StudentEntity">26<selectKey keyProperty="studentID" resultType="String" order="BEFORE">27select nextval('student')28</selectKey>29INSERT INTO STUDENT_TBL (STUDENT_ID,30STUDENT_NAME,31STUDENT_SEX,32STUDENT_BIRTHDAY,33CLASS_ID)34V ALUES (#{studentID},35#{studentName},36#{studentSex},37#{studentBirthday},38#{classEntity.classID})39</insert>insert语句属性配置细节:属性描述取值默认id 在这个模式下唯一的标识符,可被其它语句引用parameterType传给此语句的参数的完整类名或别名flushCache 如果设为true,则会在每次语句调用的时候就会清空缓存。

select 语句默认设为falsetrue|falsefalseuseCache 如果设为true,则语句的结果集将被缓存。

select 语句默认设为false true|false falsetimeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定true|falsefalsetimeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定正整数未设置fetchSize 设置一个值后,驱动器会在结果集数目达到此数值后,激发返回,默认为不设值,由驱动器自己决定正整数驱动器决定statementT ype statement,preparedstatement,callablestatement。

预准备语句、可调用语句STATEMENTPREPAREDCALLABLEPREPAREDuseGenerat edKeys 告诉MyBatis 使用JDBC 的getGeneratedKeys 方法来获取数据库自己生成的主键(MySQL、SQLSERVER 等关系型数据库会有自动生成的字段)。

默认:falsetrue|falsefalsekeyPropert y 标识一个将要被MyBatis 设置进getGeneratedKeys 的key 所返回的值,或者为insert 语句使用一个selectKey子元素。

selectKey语句属性配置细节:属性描述取值keyPropertyselectKey 语句生成结果需要设置的属性。

resultType 生成结果类型,MyBatis 允许使用基本的数据类型,包括String 、int类型。

order可以设成BEFORE 或者AFTER ,如果设为BEFORE ,那它会先选择主键,然后设置keyProperty ,再执行insert 语句;如果设为AFTER ,它就先运行 insert 语句再运行selectKey 语句,通常是insert 语句中内部调用数据库(像Oracle )内嵌的序列机制。

BEFOREAFTERstatement Type像上面的那样, MyBatis 支持STATEMENT ,PREPARED 和CALLABLE 的语句形式, 对应Statement ,PreparedStatement 和CallableStatement 响应STA TE MENT PREPAR ED CALLA BLE2.4 update 、delete一个简单的update : Xml 代码40 <!-- 更新学生信息 -->41 <update id="updateStudent" parameterType="StudentEntity"> 42 UPDA TE STUDENT_TBL43SET STUDENT_TBL.STUDENT_NAME = #{studentName}, 44 STUDENT_TBL.STUDENT_SEX = #{studentSex},45 STUDENT_TBL.STUDENT_BIRTHDAY = #{studentBirthday}, 46 STUDENT_TBL.CLASS_ID = #{classEntity.classID} 47 WHERE STUDENT_TBL.STUDENT_ID = #{studentID}; 48 </update>一个简单的delete : Xml 代码49 <!-- 删除学生 -->50 <delete id="deleteStudent" parameterType="StudentEntity">51 DELETE FROM STUDENT_TBL WHERE STUDENT_ID = #{studentID} 52 </delete>update 、delete 语句属性配置细节: 属性 描述取值 默认 id 在这个模式下唯一的标识符,可被其它语句引用 paramete rType 传给此语句的参数的完整类名或别名flushCac he 如果设为true ,则会在每次语句调用的时候就会清空缓存。

select 语句默认设为falsetrue|fals e false useCach如果设为true ,则语句的结果集将被缓存。

select 语句默认设true|falsfalsee 为false true|false falsetimeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定etimeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定正整数未设置fetchSize 设置一个值后,驱动器会在结果集数目达到此数值后,激发返回,默认为不设值,由驱动器自己决定正整数驱动器决定statemen tType statement,preparedstatement,callablestatement。

相关文档
最新文档