1.MyBatis
官网: Mybatis https://mybatis.org/mybatis-3/
1.1概念
- MyBatis是一款优秀的持久层框架,用于简化JDBC开发
- 负责将数据保存到数据库的那一层代码
- JavaEE三层架构:表现层、业务层、持久层
- 框架
- 框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
- 在框架的基础之上构建软件编写更加高效、规范、通用、可扩展。
- JDBC缺点
- 硬编码 配置文件
- 注册驱动、获取链接 写了一堆链接字符串
- SQL语句 也写了一堆代码字符串
- 操作繁琐 自动完成
1.2MyBatis 快速入门
步骤
- 创建user表,添加数据
- 创建模块,导入坐标
- 编写MyBatis核心配置文件 –> 替换链接信息,解决硬编码问题
- 编写SQL映射文件 –>统一管理Sql语句,解决硬编码问题
- 编码
- 定义POJO类
- 加载核心配置文件,获取SqlSessionFactory对象
- 获取SqlSession对象,执行SQL语句
- 释放资源
代码
pom.xml配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency>
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency>
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.20</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> </dependency>
|
mybatis-config.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <typeAliases> 目标对象的包 <package name="com.itheima.pojo"/> </typeAliases>
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment>
<environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> 类路径
<package name="com.itheima.mapper"/>
</mappers>
|
Demo.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public class MyBatisDemo {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession(); List<User> users = sqlSession.selectList("test.selectAll"); System.out.println(users); sqlSession.close(); } }
|
1.3Mapper
目的
1.3.1Mapper代理开发规则
- 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
- 在资源文件夹中新建包时,把 . 用 / 代替 这样在文件中才会体现分层结构
- 设置SQL映射文件的namespace属性为Mapper接口全限定名
- 在Mapper|接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
- 编码
- 通过SqlSession的getMapper方法获取Mapper接口的代理对象
- 调用对应方法完成sql的执行
==细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载==
在核心的配置文件xml中
1 2 3 4 5 6 7 8
| <mappers>
<package name="com.itheima.mapper"/>
</mappers>
|
1.4Mybatis.xml核心配置为文件
要安装官方文件的顺序 进行配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment>
<environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments>
|
2.JavaSpring
2.1js简介
JavaScript是一门跨平台、==面向对象的脚本语言==,来控制网页行为的,它能使网页可交互
W3C标准:网页主要由三部分组成
- 结构:HTML
- 表现: CSS
- 行为: JavaScript
JavaScript和Java是完全不同的语言,不论是概念还是设计。但是基础语法类似。
2.2JavaScript 引入方式
==引入方式==
内部脚本 :将JS代码定义在HTML页面中