JavaScript二 Li.067

JavaScript 面向对象, 类的定义和使用 定义格式 class 类名{ constructor(变量列表){ 变量赋值; } 方法名(参数列表){ 方法体; return 返回值; } } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>类的定义和使用</title> </head> <body> </body> <script> class Person{ constructor(name,age) { this.name = name this.age = age } // show method show(){ document.write(this.name+" "+this.age+"<br/>"); } eat(){ document.write("吃饭<br>"); } } let p = new Person("张三",23) p.show() p.eat() </script> </html> 字面量定义类和使用 let 对象名 = { 变量名 : 变量值, 变量名 : 变量值, ... 方法名 : function(参数列表){ 方法体; return 返回值; } ....

November 19, 2021 · 5 分钟 · Lizicai

JavaScript一 Li.066

JavaScript JS的2种引入方式 直接在页面写 在页面引入 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>快速入门</title> </head> <body> <button id="btn">点我呀</button> <!--引入js的方式一: 内部方式--> <script type="text/javascript"> document.getElementById("btn").onclick = function (){ alert("点我干嘛") } </script> <script src="js/my.js"></script> </body> </html> 输入输出语句 输入框 prompt(“提示内容”); 弹出警告框 alert(“提示内容”); 控制台输出 console.log(“显示内容”); 页面内容输出 document.write(“显示内容”); <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>输入输出语句</title> </head> <body> <script> /* * 输入框 * prompt("提示内容"); * 弹出警告框 * alert("提示内容"); * 控制台输出 * console.log("显示内容"); * 页面内容输出 * document.write("显示内容"); */ prompt("请输入数据") alert("hello") console....

November 14, 2021 · 7 分钟 · Lizicai

MyBatis框架三 Li.065

注解开发MyBatis 操作 创建接口和查询方法 在核心配置文件中配置映射关系 编写测试类 package com.lizicai.mapper; import com.lizicai.bean.Student; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.util.List; public interface StudentMapper { // 查询 @Select( "SELECT * FROM student") public abstract List<Student> selectAll(); // 插入数据 @Insert("INSERT INTO student VALUES (#{id},#{name},#{age})") public abstract Integer insert(Student stu); // 修改数据 @Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}" ) public abstract Integer update(Student stu); // 删除数据 @Delete("DELETE FROM student WHERE id=#{id}") public abstract Integer delete(Integer id); } <?...

November 4, 2021 · 7 分钟 · Lizicai

MyBatis框架二 Li.064

接口代理方式实现Dao层 接口代理方式-实现规则 传统方式实现Dao 层,我们既要写接口,还要与实现类。而MyBatis框架可以帮助我们省略编写 Dao 层接口实现类的步骤 程序员只需要编写接口,由MyBatis 框架根据接口的定义来创建该接口的动态代理对象。 实现规则 映射配置文件中的名称空间必须和 Dao 层接口的全类名相同。 映射配置文件中的增删改查标签的 id 属性必须和 Dao 层接口的方法名相同。 映射配置文件中的增删改查标签的 parameterType 属性必须和 Dao 层接口方法的参数相同。 映射配置文件中的增删改查标签的 resultType 属性必须和 Dao 层接口方法的返回值相同。 获取动态代理对象 SqlSession功能类中的getMapper()方法 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTA Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- mapper: 核心根标签 namespace属性: 名称空间 --> <mapper namespace="com.lizicai.mapper.StudentMapper"> <!-- select: 查询功能的标签 id属性: 唯一标识 resultType属性: 指定结果映射对象类型 parameterType属性: 指定参数映射对象类型 --> <select id="selectAll" resultType="student"> SELECT * FROM student </select> <select id="selectById" resultType="student" parameterType="int"> SELECT * FROM student WHERE id = #{id} </select> <insert id="insert" parameterType="student"> INSERT INTO student VALUES (#{id},#{name},#{age}) </insert> <update id="update" parameterType="student"> UPDATE student SET name=#{name},age=#{age} WHERE id=#{id} </update> <delete id="delete" parameterType="int"> DELETE FROM student WHERE id=#{id}; </delete> </mapper package com....

November 3, 2021 · 9 分钟 · Lizicai

MyBatis框架一 Li.063

MyBatis 介绍 MyBatis 是一个优秀的基于Java 的特久层框架,它内部封装了JDBC,使开发者只需要关注SQL语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建执行者等复杂的操作。 MyBatis通过xml 或注解的方式将要执行的各种Statement 配置起来,并通过Java对象和 Statement中 SQL 的动态参数进行映射生成最终要执行的SQL 语句。 最后MyBatis 框架执行完 SQL 并将结果映射为 Java 对象并返回。采用ORM 思想解决了实体和数据库映射的问题,对JDBC 进行了封装,屏蔽了 JDBC API 底层访问细节,使我们不用与JDBC API打交道,就可以 完成对数据库的持久化操作。 MyBatis 使用示例 导入mariadb-java-client-2.7.4.jar和mybatis-3.5.7.jar CREATE DATABASE db1; use db1; create table student( id int auto_increment primary key , NAME VARCHAR(20), age int ); INSERT INTO student VALUES (null,'张三',23),(null,'李四',24),(null,'王五',25); public class Student { private Integer id; private String name; private Integer age; ...略 } package com.lizicai.dao; import com....

October 29, 2021 · 7 分钟 · Lizicai

JDBC数据库连接三 Li.062

自定义JDBC框架 使用JDBC过程中有大量的重复代码, 核心功能仅仅执行一条SQL语句, 所以可以抽取一个JDBC模板类, 来封装一些方法(update query). 专门帮我们执行增删改查SQL语句. 将之前那些重复的操作, 都抽取到模板类中的方法里, 就能大简化使用步骤 源信息 DataeBaseMetaData: 数据库的源信息 java.sql.DataBaseMetaData 封装了整个数据库的综合信息 例如 String getDatabaseProductName(): 获取数据库产品的名称 例如int getDatabaseProductVersion: 获取数据库产品的版本号 ParameterMetaData: 参数源信息 java.sql.ParameterMetaData 封装的是预编译执行者对象中每个参数的类型和属性, 这个对象可以通过预编译执行者对象中的getParameterMetaData()方法来获取 int getParameterCount() 用于获取SQL语句中的参数个数 ResultSetMetaData: 结果集的源信息 java.sql.ResultSetMetaData: 封装的是结果集对象中列的类型和属性, 这个对象可以通过结果集对象中的getMetaData()方法来获取 int getColumnCount() 用于获取列的总数, String getColumnName(int i)用于获取列名 package com.test005; import com.lizicai.utils.DataSourceUtils; import javax.sql.DataSource; import java.io.IOException; import java.sql.*; public class JDBCTemplate { // 1. 定义参数变量(数据源, 连接对象, 执行者对象, 结果集对象 private DataSource dataSource; private Connection con; private PreparedStatement pst; private ResultSet rs; // 2....

October 27, 2021 · 5 分钟 · Lizicai

JDBC数据库连接二 Li.061

数据库连接池 数据库连接池 数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现在的数据库连接,而不是再重新建立一个. 这项技术能明显提高对数据库操作的性能 DataSource接口概述 javax.sql.DataSource接口: 数据源(数据库连接池). Java官方提供的数据库连接池规范(接口) 如果想完成数据库连接池技术, 就必须实现DataSource接口 核心功能: 获取数据库连接对象: Connection getConnection() 自定义数据库连接池 定义一个类, 实现DataSource接口 定义一个容器, 用于保存多个Connection连接对象 定义静态代码块, 通过JDBC工具类获取10个连接保存到容器中 重写getConnection方法, 从容器中获取一个连接并返回 定义getSize方法, 用于获取窗口的大小并返回 package com.test001; import com.lizicai.utils.JDBCUtils; import javax.sql.DataSource; import java.io.PrintWriter; import java.sql.Connection; import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.logging.Logger; public class MyDataSource implements DataSource { // 1. 准备窗口, 用于保存多个连接对象, 变成线程安全的 private static List<Connection> pool = Collections.synchronizedList(new ArrayList<>()); // 2. 定义代码块, 通过工具类获取10个连接对象 static { for(int i=0;i<10;i++){ Connection con = JDBCUtils....

October 26, 2021 · 7 分钟 · Lizicai

JDBC数据库连接一 Li.060

JDBC 的概念 JDBC的概念 JDBC(Java DataBase Connectivity Java数据库连接)是一种用于执行SQL语句的Java API, 可以为多种关系型数据库提供统一访问,它是由一组用Java语文编写的类和接口组成的 JDBC的本质 其实就是Java官方提供的一套规范(接口). 用于帮助开发人员快速实现不同关系型数据库的连接. JDBC 的快速入门程序 导入Jar包 注册驱动 获取数据库连接 获取执行者对象 执行SQL语句并返回结果 处理结果 释放资源 JDBC包下载 package com.lizicai.jdbc; import java.sql.*; public class JDBCDemo1 { public static void main(String[] args) throws ClassNotFoundException, SQLException { // 导入Jar包, 已导入 // 注册驱动, 也可以省略掉 Class.forName("org.mariadb.jdbc.Driver"); // 获取数据库连接 Connection connection = DriverManager.getConnection ("jdbc:mariadb://192.168.0.100:3306/db10", "root", "rootPassword"); // 获取执行者对象 Statement statement = connection.createStatement(); // 执行SQL语句并返回结果 String sql = "SELECT * FROM city"; ResultSet rs = statement....

October 24, 2021 · 7 分钟 · Lizicai