javaweb

一.Javaweb的简介

javaweb即用Java语言来开发网站

网页--javaweb程序--数据库

二.JDBC(Java数据库连接)

JDBC就是使用Java语言操作关系型数据库的一套API。

MySQL驱动就是MySQL的实现类。

1.入门

(1)注册驱动

(2)获取连接

(3)定义SQL语句

(4)获取执行对象

(5)执行SQL语句

(6)处理结果

(7)释放资源

2.JDBC API

(1)Driver Manager(驱动管理类)

i.注册驱动

ii.获取连接        getConnection(url,user,password)

url:连接路径

语法:jdbc:mysql://ip地址:端口号(3306)/数据库名

(2)connection(数据库连接对象)接口

作用:i.获取执行SQL语句的对象

ii.管理事务:        开始:Setutocommit(boolean);

提交:commit();

回滚:rollback();(在try-catch中)

(3)Statement(对象)

executeUpdate(sql)执行DDL,DML

executeQuery(sql)执行DQL,返回值:resultset结果集对象

(4)resultset结果集对象

boolean next();将游标下移一行并判断

getxxx(参数)参数可以是列的编号或名称,xxx为数据类型,Int/String

(5)preparedStatement接口(防止sql注入)

作用:预编译Sql语句并执行。

useserverPrestmts=true开启预编译功能

mysql服务器-》检查sql语法-》编译-》执行sql

三.数据库连接池

好处:资源复用,提高速度,避免数据库连接遗漏。

负责分配,管理数据库连接。

常见的有:Durid,DBCP,C3P0

四.Maven

专门管理和构建Java项目的工具。

仓库:本地仓库,远程仓库,中央仓库

1.Maven的基本使用

命令:

compile 编译

test 测试

package 打包

install 安装

clean 清理

eg.mvn compile

2.Maven的生命周期

分为3套:clean,default,site(产生报告,发生站点)

同一个生命周期中,执行后边的命令,前面的所有命令都会自动执行。

3.Idea配置Maven

Maven坐标是资源的唯一标识。

坐标的组成:groupId:定义当前Maven项目隶属组织的名称(域名反写)

artifaltId:Maven项目的名称(模块名称)

version:定义当前的版本号

如何显示Maven侧面按钮。

4.依赖管理

(1)使用坐标导入jar包

<dependencies>标签

<dependency>

<groupId>

<artifactId>

<version>

<scope>

(2)自动导入

(3)快捷方式

ALT+insert

(4)依赖范围

scope默认compile

可以设置对应jar包的作用范围:编译环境,测试环境,运行环境

五.Mybatis

1.简介

Mybatis是一款优秀的持久层框架,用于简化JDBC的开发。

javaEE的三层框架:持久层,表现层,业务层

持久层:将数据保存到数据库的那一层代码。

2.JDBC的缺点

(1)硬编码问题:注册驱动,SQL语句

(2)操作繁琐:手动设置参数,手动封装结果集

3.Mybatis的快速入门

ALT+鼠标左键==整列编辑

(1)创建表,导入数据

(2)创建模块,导入坐标

(3)编写Mybatis配置文件

(4)编写SQL映射文件

(5)定义类,加载配置文件,获取sqlsessionFactory对象,获取SQL session对象

执行SQL,释放资源

4.解决SQL映射文件的警告提示

IDEA不认识数据库中的表,应该让其与数据库联系。

5.Mapper代理开发

在执行sql时,有硬代码问题。需要固定的(例如:”test.selectAll)

方法:获取接口代理对象,执行sql

创dirtory时,名字起法:(例如:com/.../...类似于Java中的com........一致)

方式:1.创建一个接口与sql的映射文件名一致,且置于同一个目录下

2.在接口中创建方法,返回值类型与参数类型一致,id为方法名

3.在测试类中,获取sqlsession对象

sqlsession.getMapper(userMapper.class)

4.获取Mapper代理对象

userMapper.selectAll();

environment:配置数据库连接环境信息

可以配置多个环境,用default属性切换不同信息。

注意配置标签时,要注意顺序。

Mybatis完成操作需要三步:编写接口方法-》编写sql-》执行方法

6.配置文件进行增删改

        查看所有:(1)数据库字段的名称与实体类的不同(不可自动封装数据):1.起别名2.sql片段,使用sql标签

3.resultMap:id:完成主键字段的映射/   result:完成一般字段的映射=》column:表的列名

property:实体类的属性名

先定义<resultMap>标签,在<select>标签中,将resultType替换成resultMap

        查看详情:就是根据id查询,mybatis参数占位符:#{}==》将会被替换成?为了防止sql注入

eg.<select id="..." resultMap="...">

        select * from 表名 where id=(=可能会是>/<)#{id(与接口方法中的局部变量名称一样)};

</select>

如果是>/<,则需要进行特殊字符的处理。

1.转义字符:<==》&lt;

2.CDATA区:<![CDATA[        <        ]]>

        条件查询:参数接收:1.散装参数:如果方法中有多个参数,用Param(“参数占位符”)

2.对象参数(接收参数,处理参数eg.companyname="%"+companyname+"%"表示companyname前后字符任意,封装对象)

3.Map集合参数

        动态条件查询:动态sql即sql语句会随着用户的输入或外部条件的而变化

(1)多条件:在select标签中添加if标签,if:条件判断        test:写条件表达式

如果遇到问题是条件1不成立,后面会有语法错误(即多了一个and)。

方案1:恒等式,where1=1 and...

方案2:用where关键字,<where>.....</where>

(2)单条件查询

从多个条件中选择一个

choose(when==>相当于case,otherwise==》default)

添加:<insert>

1.需要手动提交事务:sqlsession.commit();

2.可以设置自动提交事务:在获取sqlsession对象时,session sql=sqlsessionFactory.opensession(true);

<insert id="add" useGeneratedKeys="true" keyProperty="id">
    insert into user(name,age,sex)values(#{Name},#{Age},#{Sex})
</insert>

id的值会被获取出来

修改:①修改全部字段

编写Mapper接口,返回类型void

编写SQL映射文件,执行方法

②修改动态字段

删除:

①删除一个:

②批量删除:

需要接收id数组

collection属性表示表要遍历的数组

Mybatis会将数组参数,封装成一个Map集合

六、Mybatis参数传递

提供了ParamNameResolver类,进行参数封装。

1.Mybatis接口方法中可以接受各种各样的参数

①单个参数:

pojo类型(eg.brand),collection,Map,list,Array,其他类型

②多个参数:

需要加注解:==》替换Map集合中的arg键名,可读性更高。

封装成Map集合,可不加注解,

一个参数对应两个键(arg0,param1)/(arg1,param2)

③单个注解:

1.pojo类:直接使用,属性名与参数占位符名称一致即可。

2.Map类型:直接使用,键名与参数占位符一致即可。

3.Collection:封装成Map集合

7.注解完成增删改查

直接写入接口类中。

使用注解开发会比配置文件开发更为方便,不需要在xml文件里添加SQL语句。

查询:@Select

添加:@Insert

修改:@Update

删除:@Delete

注解完成简单功能,配置文件完成复杂功能。

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb demo 是一个简单的 JavaWeb 应用程序示例。它主要用于展示如何创建一个简单的动态网站,并介绍了一些常用的 JavaWeb 技术。 这个 demo 可能包含以下几个方面的内容: 1. 前端页面:demo 可能包含多个静态 HTML 页面,通过 CSS 和 JavaScript 来实现页面的样式和交互效果。这些页面可能包含表单、按钮、导航栏等常见的网页组件。 2. 后端处理:demo 可能使用 Java Servlet 来处理前端页面的请求。Servlet 是 JavaWeb 开发中的一种常用技术,通过它可以接收和处理 HTTP 请求,并生成对应的响应。在 demo 中,Servlet 可能会读取表单数据、调用业务逻辑处理模块,并将处理结果返回给前端页面。 3. 数据库连接:demo 可能会使用 Java 中的数据库连接技术,如 JDBC,来与后端数据库进行交互。通过 JDBC,demo 可能会连接到数据库、执行 SQL 查询和更新操作,以及处理数据库返回的结果。 4. 业务逻辑:demo 可能会展示一些简单的业务逻辑,如用户注册、登录等。在这些功能中,demo 可能会将用户的输入数据存储到数据库中,或者验证用户的登录信息。 通过这个示例,开发者可以了解到如何搭建一个简单的 JavaWeb 应用程序,并了解到如何使用常见的 JavaWeb 技术来实现各种功能。这个 demo 还可以作为 JavaWeb 开发的一个入门教程,帮助开发者迅速上手和理解如何构建一个简单的动态网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值