<select id="getRecByNameWildcard" parameterType="Student" resultMap="result"> SELECT * FROM STUDENT <if test="name != null"> WHERE name LIKE "%"#{name}"%" </if> </select>…
1.select语句 public List<User> findUser() {  // TODO Auto-generated method stub    List users= (List<User>) sqlSessionTemplate.selectList("findAllUser");    return users;   } <!-- 查询所有用户--><select id="findAllUser" re…
mybatis动态sql中的两个内置参数(_parameter和_databaseId)   <!-- mybatis动态sql的两个内置参数           不只是方法传递过来的参数可以被用来判断,取值       mybatis默认还有两个内置参数           _parameter:代表整个参数                                      单个参数:_parameter就是这个参数                                   …
mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: function login(){ //sql注入 var user = { username : "'李雪雷3' or 1=1", password : "'ab0715'", } $.ajax({ url: '/api/test/login.json', type: "POST", data: JSON.stringify(user),//将对象序列化成JS…
PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件-----------------------------------// $dsn="mysql:host=localhost;dbname=xsphp"; $username="root"; $passwd=""; try{ $options =…
本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load Course</button> <button ng-click="toggleAddCourse(true)">Add New Course</button> <ng-includce src="'course_list.html'&q…
以下是一些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的.a_b... a[_]b%a%b... a[%]b%a[b... a[[]b%a]b... a]b%a[]b... a[[]]b%a[^]b... a[[][^]]b%a[^^]b... a[[][^][^]]b% 1. 在实际进行处理的时候,对于=操作,我们一般只需要如此替换:' -> '' 2. 对于like操作,需要进行以下替换(注意顺序也很重要)[ -> [[] (这个必须是第一个替换的!!)% -&…
set标记是mybatis提供的一个智能标记,我一般将其用在修改的sql中,例如以下情况: <update> update user <set> <if test="name != null and name.length()>0">name = #{name},</if> <if test="gender != null and gender.length()>0">gender = #{ge…
My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少. 事实上trim标签有点类似于replace效果. trim 属性 prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件 suffixOverrides:后缀判断的条件 比如: select b.* from sys_menu b where 1 = 1 <trim suffix="WHERE" suffixOverrides=&q…
foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代.如下: <delete id="deleteBatch"> delete from user where id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=",&qu…
where标记的作用类似于动态sql中的set标记,他的作用主要是用来简化sql语句中where条件判断的书写的,如下所示: <select id="selectByParams" parameterType="map" resultType="user"> select * from user <where> <if test="id != null ">id=#{id}</if&g…
1.用<sql>标签抽取可重用的sql片段 <!-- 抽取可重用的SQL片段,方便后面引用           1.sql抽取,经常将要查询的列名,或者插入用的列名,之后方便引用          2.include来引用已经抽取的sql            -->      <sql id="insertColumn">            ename,gender,email,did      </sql> 2.在多列名的sql中…
从测试类入手,断点调试 找到实现类,进入到insert方法里面 这里是SqlSession的接口里面的方法. 我们需要找SqlSession的实现类. DefaultSqlSession 里面有两个insert方法,第一个insert执行的是第二个insert方法,德尔格insert方法又执行的是下面的update方法 delete最终执行的也是update方法 我们的update方法传了两个参数 所以他最终执行的是这里两个参数的 update再往后走就是executor.update方法.也就…
首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5.1.6-bin.jar 建立User封装类,这儿只写属性,不写setter和getter,tostring方法 private int id; private String name; private int age; 在src目录下建立db.properties文件,连接数据库的属性和值 dri…
编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可: 在lib下 导入mybatis架包:mybatis-3.1.1.jarmysql驱动架包:mysql-connector-java-5.1.6-bin.jar 在src目录下建立xml配置文件:conf.xml,是一些连接数据库的配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUB…
0.目录 1.前言 2.最基本的SQL查询语句 3.select...from... 3.1 "*"与"Top num *" 3.2 查询指定列 3.3 Isnull函数:判断空值 3.4 使用"+"将"列"与"字符串"连接起来(使用as重命名) 4.order by 4.1 asc(正序) 4.2 desc(倒序) 4.3 其他 5.where 5.1 比较运算符 5.2 or 或 and 5.3 Lik…
在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num信息.而personMapper则是该实体类的一个配置文件.需要注意的是,在上一篇博文中,namespace属性的值是其本身,而在这一篇中,使用的是接口.那么两者有什么区别呢?使用接口,那么相关的操作方法不用自己去实现,只需要调用该接口的相关的方法就能够实现相应的功能. 那么,在这里就有一个问题,接…
0.目录 1.前言 2.通过SSMS删除 3.通过SQL语句删除 3.1 删除单行数据 3.2 删除所有行数据 3.3 删除表和数据库 1.前言 增删改查都是对数据的操作,其中"删"对应的SQL语句便是"delete",也就是"删除"的意思. 本篇主要介绍数据的删除,分别使用SSMS/SQL对数据进行删除操作. 2.通过SSMS删除 2.1选择 数据库->SSMSTest->表->dbo.student 右键单击dbo.stud…
0.目录 1.前言 2.通过SSMS添加数据 3.通过SQL语句添加数据 3.1 添加单条数据 3.2 添加多条数据 4.通过其他表导入数据 4.1 通过数据库中的其他表导入数据 4.2 通过excel表导入数据 1.前言 增删改查都是对数据的操作,其中"增"对应的SQL语句便是"insert",也就是"插入"的意思. 本篇主要介绍数据的添加,有GUI方式的添加,也有SQL语句的添加,还有导入的添加. 2.通过SSMS添加数据 2.1选择 数据库…
package com.hu.dao; import com.hu.entity.Student; import java.util.List;import java.util.Map; public interface StudentDao { boolean add(Student s); boolean delete(int id); boolean update(Student s); /** * 根据 id 查询学生信息 * Map 是一个key value 的键值映射 * * 将一个…
1.用处 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交的正确信息 4.如果其中有一个错误了,其他的正确,则保留上次输入的内容 5.自动创建input标签并可以设置样式 6.基于forms实现增删改查 2.使用方法 对于注册信息进行校验 在应用下创建一个forms.py文件(起什么名无所谓,后面在视图函数中直接导入进来使用) from django import forms from django.forms import widgets from django.core.exce…
0.目录 1.前言 2.通过SSMS修改数据 3.通过SQL语句修改数据 3.1 修改单列数据 3.2 修改多列数据 1.前言 增删改查都是对数据的操作,其中"改"对应的SQL语句便是"update",也就是"更新"的意思. 本篇主要介绍数据的修改,分别使用SSMS/SQL对数据进行修改操作. 2.通过SSMS修改数据 选择 数据库->SSMSTest->表->dbo.student 右键单击dbo.student选择编辑前20…
一.首先先创建一个C#的控制台应用 二.然后添加上必要的命名空间 using System;using System.Collections.Generic;using MySql.Data.MySqlClient;using System.Data;using Dapper;using System.Linq; 三.首先配置好一个数据库中存在的类表: class Info { public int action_id { get; set; } public int parent_id { g…
首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'orm_intro_dem', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } } 之后将创建的app添加到settings.py文件中的INSTALLED_APPS中…
今天碰到了 select * from table1 t where t.name like '模块a' 查不出数据 而select * from table1 t where t.name like 'a'  却可以 所以想到应该是数据库字符集编码问题 在系统变量里 添加 NLS_LANGAMERICAN_AMERICA.UTF8 就好…
1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ; alter table USERINFO add primary key (ID); create sequence seq_userinfo; insert into USERINFO (id, uname, password, age) ); insert into USERINFO (id…
在mybatis中通过使用SQL片段可以提高代码的重用性,如下情景: 1.创建动态SQL <sql id="sql_count">select count(*)</sql> 2.使用 <select id="selectListCountByParam" parameterType="map" resultType="String"> <include refid="sql_…
Mybatis中的sql语句中的  “<”  和   “>”  号要用转义字符   “<”   和  ”>“ ,否则会报错! 如查找年龄大于等于指定年龄的用户信息: SELECT * FROM T_USER WHERE AGE >=#{age} 进行转义: 原符号   <    <=    >    >=     &      '       " 替换符号 < <= > >= & &apos;…
知识点:bind在模糊查询中的用法 在我的博客    mybatis中使用mysql的模糊查询字符串拼接(like) 中也涉及到bind的使用 <!-- List<Employee> getEmpsTestInnerParameter(Employee employee); -->      <select id="getEmpsTestInnerParameter" resultType="com.hand.mybatis.bean.Emplo…
trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND name=#{name}</if> <if test="gender…