MyBatis构建sql和JS基础
mybatis构建sql
基本介绍
mybatis中通过一些注解和注解的构建类实现对数据库增删改查的操作
代码实现
package com.itheima.mapper;
import com.itheima.bean.Student;
import com.itheima.sql.ReturnSql;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
import java.util.List;
public interface StudentMapper {
//查询全部
//@Select("SELECT * FROM student")
@SelectProvider(type = ReturnSql.class , method = "getSelectAll")
public abstract List<Student> selectAll();
//新增功能
//@Insert("INSERT INTO student VALUES (#{id},#{name},#{age})")
@InsertProvider(type = ReturnSql.class , method = "getInsert")
public abstract Integer insert(Student stu);
//修改功能
//@Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}")
@UpdateProvider(type = ReturnSql.class , method = "getUpdate")
public abstract Integer update(Student stu);
//删除功能
//@Delete("DELETE FROM student WHERE id=#{id}")
@DeleteProvider(type = ReturnSql.class , method = "getDelete")
public abstract Integer delete(Integer id);
}
StudentMapper接口,定义了增删改查的方法,如果要使用sql构建的方法来对数据库进行操作,就需要MyBatis中提供的增删改查的注解,@SelectProvider对应的查询操作,@InsertProvider对应的是增加操作,@UpdateProvider对应的是修改的操作,@DeleteProvider对应的是删除操作。注解中的type属性就是对应的构建sql语句类的class文件,method是类中的方法,方法名字一一对应。
package com.itheima.sql;
import com.itheima.bean.Student;
import org.apache.ibatis.jdbc.SQL;
public class ReturnSql {
//定义方法,返回查询的sql语句
public String getSelectAll() {
return new SQL() {
{
SELECT("*");
FROM("student");
}
}.toString();
}
//定义方法,返回新增的sql语句
public String getInsert(Student stu) {
return new SQL() {
{
INSERT_INTO("student");
INTO_VALUES("#{id},#{name},#{age}");
}
}.toString();
}
//定义方法,返回修改的sql语句
public String getUpdate(Student stu) {
return new SQL() {
{
UPDATE("student");
SET("name=#{name}","age=#{age}");
WHERE("id=#{id}");
}
}.toString();
}
//定义方法,返回删除的sql语句
public String getDelete(Integer id) {
return new SQL() {
{
DELETE_FROM("student");
WHERE("id=#{id}");
}
}.toString();
}
}
构建sql语句的类,里面的方法返回值就是一句sql语句的字符串,方法名字一一对应跟注解。最后的实现代码还是通过接口代理创建StudentMapper的实现类,调方法实现操作。
JS基础
js代码的引入方式
js全名javascript,通过HTML文件,在body标签下使用script标签实现动态网页,第一种引入方式就是在这个标签内写对应的js代码,第二种引入方式是在外部创建一个js文件,里面写js代码,如果想使用这些js代码,就需要在script标签中的src属性指定路径名,就可以实现动态网页。
js中四种输入输出语句
1.prompt(“输入内容”):在网页中会显示一个文本让用户输入内容。使用不多
2.alert(“弹出窗口显示内容”):进入网页,网页会弹出消息,消息就是引号中的内容
3.console.log(“具体内容”):网页中控制台打印,可以F12打开调试界面选择Console窗口,不会在网页中显示内容,只会在控制台显示内容
4.document.write(“内容”):这个引号内可以使用html的标签,在网页中显示引号里的内容
js中的变量定义
js中定义变量时不区分数据类型的,直接赋值对应需要的类型就可以了,跟java中定义变量的使用方法一致定义局部变量使用let关键字,定义全局变量直接写变量名=值或者var 变量名=值,常量的定义则需要在变量名前面加上一个关键字const。如果在js中没有赋值,这个变量默认是undefined。
js中获取变量类型的方法
typeof()参数传一个变量,就可以显示出这个变量的具体数据类型。
js中定义数组
var/let 数组名 = [值1,值2。。。],在js中,对数组的操作有一个高级特性三个点加上数组名字就可以把数组内容展开,…数组名,arr1= […arr2,…arr3],这个代码就会把arr2的数组和arr3的数组赋值在arr1数组中。
js函数
-
普通函数
function 函数名(参数名,参数名) { 函数体 return 还回值; }
-
定义函数步骤
- 函数名
- 是否有参数
- 是否有返回值
//无参无返回值的方法 function println(){ document.write("hello js" + "<br>"); } //调用方法 println(); //有参有返回值的方法 function getSum(num1,num2){ return num1 + num2; } //调用方法 let result = getSum(10,20); document.write(result + "<br>"); //可变参数 对n个数字进行求和 function getSum(...params) { let sum = 0; for(let i = 0; i < params.length; i++) { sum += params[i]; } return sum; } //调用方法 let sum = getSum(10,20,30); document.write(sum + "<br>");
-
匿名函数
let func = function(参数1,参数2) { 函数体 return 还回值; }
-
函数的参数是函数
//匿名函数 let fun = function(){ document.write("hello"); } // fun(); // 定义一个函数,函数参数是函数类型 function myfunction(reciveFunc) { reciveFunc(); } myfunction(fun);