这里写目录标题
- 上午:
- 什么是url?
- 下午:
- JDBC
- 什么是ORM?
- mybatis:
- springboot与mybatis整合
- 数据库操作
- 新增:
- 修改:
- 删除:
- 数据分页查询:
- 数据库查询过滤:
- 使用注解代替xml实现CRUD
- 所谓的CRUD:
- Typora笔记下载:
上午:
什么是url?
url的各个板块划分和内容:
各个注解的知识点:
下午:
JDBC
JDBC: java Databasse Connectivity 是java语言中用于规范客户端程序如何访问数据库的应用程序接口,提供了访问数据库的方法
1、通过jdbc连接数据库:
2、预编译指令 (执行一个sql语句)
3、将数据映射到pojo类上:
4、第四步应该放到finally中去,以便能够将连接关闭(即使中途抛出异常也能够关闭连接,否则当连接抛出异常时,不能将连接关闭,导致占用,这是一种属于安全意识方面的东西)
什么是ORM?
ORM(Object Relational Mapping):对象关系映射,指把java中对象的字段与数据库表中的列进行意义对应
ORM功能:
- 自动映射数据与对象
- 解耦业务代码与sql语句
现在的程序都讲究低耦合,
mybatis:
一款优秀的ORM半自动化持久化框架
springboot与mybatis整合
- 新建一个用户表
- 新建一个springboot项目
- 在springboot中集成mybatis
mybatis需要的包:
mybatis-spring-boot-starter
mysql的连接包
在pom.xml文件中导入mybatis和mysql的依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
通过配置文件(application.yml或application.properties,两种文件均可配置,但当他们同时存在时,只有properties发挥作用,说明properties文件在IDEA中的优先级更高)
配置文件的书写方式:
# 配置数据库的连接
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
# 配置mybatis的配置
mybatis:
# 指定mapper.xml文件存放的路径
mapper-locations: classpath:mappers/*.xml
# 给pojo取一个别名【可选】
type-aliases-package: com.itheima.pojo
在yml配置文件中添加下面这段在控制台打印sql语句
# 设置日志级别
logging:
level:
root: info
com.itheima.dao: debug
数据库操作
可在mapper.xml文件中书写对应的sql语句来实现数据库的查询和增删改操作:
对应的写法分别如下所示:
新增:
<!--useGeneratedKeys=true,是声明当前插入语句时自动增注解,执行成功后需要回填主键的值,keyColumn数据表的主键名称,keyProperty对象的属性-->
<insert id="save" parameterType="user" useGeneratedKeys="true" keyColumn="id" keyProperty="id" >
insert into user (username,password,salt,sex) value (#{user.userName},#{user.password},#{user.salt},#{user.sex});
</insert>
修改:
<update id="update" parameterType="user">
update user set sex=#{user.sex} where id=#{user.id}
</update>
删除:
<delete id="delete" parameterType="int">
delete from user where id=#{id}
</delete>
数据分页查询:
<!--查询全部用户并支持分页-->
<select id="findAllForPage" resultType="user">
select * from user limit #{start},#{size}
</select>
写一个test类进行测试(userMapper是一个mapper的实体类在test上面使用了@autowired注解)
@Test
public void testFindAllForPage(){
int page=1;
List<User> list = userMapper.findAllForPage((page-1)*2,2);
System.out.println("第一页:"+list);
page=2;
list = userMapper.findAllForPage((page-1)*2,2);
System.out.println("第二页:"+list);
page=3;
list = userMapper.findAllForPage((page-1)*2,2);
System.out.println("第三页:"+list);
}
书写测试类的方式如下图所示:
注:
书写sql语句时列名要写数据库中的列名,注意名称的大小写,
数据库查询过滤:
查找指定用户名的方法(指定一列数据的值通过该值进行查询):
<!--查询用户-->
<select id="findByUserName" resultType="user">
select * from user where username=#{userName}
</select>
使用注解代替xml实现CRUD
将xml中的sql写进注解中(如下图所示,但是这种方式并不好,因为它是将sql语句写在了java类里面,这样不方便管理(我不清楚是不方便管理的原因还是什么原因了)):
所谓的CRUD:
CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。
Typora笔记下载:
大致内容展示: