当前位置: 首页 > wzjs >正文

绵阳网站seo贵州省建设监理协会网站

绵阳网站seo,贵州省建设监理协会网站,运城建设银行网站,做网站的是外包公司吗JDBC JDBC: Java DataBase Connectivity),就是使用ava语言操作关系型数据库的一套API。 JDBC本质: sun公司官方定义的一套操作所有关系型数据库的规范,即接口。 各个数据库厂商去实现这套接口,提供数据库驱动jar包。 …

 JDBC

JDBC: Java DataBase Connectivity),就是使用ava语言操作关系型数据库的一套API。

JDBC本质:
sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
各个数据库厂商去实现这套接口,提供数据库驱动jar包。
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

JDBC连接数据库:

package com.cyyWeb;import com.cyyWeb.pojo.User;
import org.junit.jupiter.api.Test;import java.sql.*;public class jdbcTest {@Test // 单元测试public void testUpdate() throws ClassNotFoundException, SQLException {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.连接数据库String url = "jdbc:mysql://localhost:3306/webjdbc618";String user = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, user, password);//3.获取sql语句执行对象Statement statement =connection.createStatement();//4.执行sql语句int i =statement.executeUpdate("update user set age =25 where id = 1");System.out.println("Sql执行完影响的记录数"+i);//5.释放资源statement.close();connection.close();}
}

优化代码:

@Testpublic void testSelect() throws Exception {/*** 你是一名java开发工程师,帮我基于JDBC程序来操作数据库,执行如下SQL语句:* select id,username,password,name,age from user where username = 'daqiao' and password = '123456';* 并将查询的每一行记录,都封装到实体类User中,然后将User对象的数据输出到控制台中。*/String url = "jdbc:mysql://localhost:3306/webjdbc618";String user = "root";String password = "1234";String sql = "SELECT id, username, password, name, age FROM user WHERE username = 'daqiao' AND password = '123456'";String sql1 = "SELECT id, username, password, name, age FROM user ";Connection connection =null;Statement statement =null;ResultSet rs =null;try {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.连接数据库connection = DriverManager.getConnection(url, user, password);//3.获取sql语句执行对象statement = connection.createStatement();//4.执行sql语句,进行查询.ResultSet是查询结果集rs = statement.executeQuery(sql1);//将查询结果保存在ResultSet对象中//5.处理查询结果while (rs.next()) {Integer id = rs.getObject("id", Integer.class);String username = rs.getObject("username", String.class);String pwd = rs.getObject("password", String.class);String name = rs.getObject("name", String.class);Integer age = rs.getObject("age", Integer.class);//将查询结果封装为User对象User userObj = new User(id, username, pwd, name, age);System.out.println(userObj);}} catch (SQLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {//finally代码块,无论否发生异常,都会执行try {if (connection != null) {connection.close();}if (statement != null) {statement.close();}if (rs != null) {rs.close();}}catch (SQLException e) {e.printStackTrace();}}}

运行结果:

总结:
JDBC程序执行DML语句?DQL语句?
DML语句:int rowsAffected = statement·executeUpdateO;
DOL语句:Resultset rs = statement·executeQuery();


DOL语句执行完毕结果集ResultSet解析?
resultSet.next():光标往下移动一行
resultSet.getXxx():获取字段数据

数据操纵语言(DML)

数据操纵语言全程是Data Manipulation Language,主要是进行插入元组、删除元组、修改元组的操作。主要有insert、update、delete语法组成。

数据查询语言(DQL)

数据查询语言全称是Data Query Language,所以是用来进行数据库中数据的查询的,即最常用的select语句

预编译SQL

预编译SQL更加安全,性能更高。

预编译SQL优势:

1.可以防止SQL注入,更安全。

SQL注入:通过控制输入来修改事先定义好的SQL语句,以达到执行代码对服务器进行攻击的方法
后台管理系统。

静态SQL

select count(*)from emp where username ='sjdkfikdjfksfand password =or1=1

运行结果是:数据库所有信息的个数。成功进入登录系统。

SQL注入攻击:

预编译SQL

有效防止SQl注入。

2.性能更高

静态SQL,需要缓存多次,进行多次 SQL语法解析检查->优化SQL->编译SQL。

预编译SQL:只需要缓存一次,然后直接通过缓存在?处填写数据,后直接执行。预编译SQL较静态SQL减少缓存次数,提高效率。

Mybatis

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

MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis,2013年11月迁移到Github。

JDBC

MvBatis

MvBatis更加简洁,优雅。

入门程序

1.创建SpringBoot工程

2.数据库表user和User实体类

3.配置MyBatis

4.编写MyBatis程序

5.在Test代码中调用mapper代码。

总结:

注:Mybatis的持久层接口命名规范为XxxMapper,也称为Mapper接口


JDBC VS Mybatis


数据库连接池

数据库连接池:
数据库连接池是个容器,负责分配、管理数据库连接(Connection)
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏

标准接口:DataSource
官方(sun)提供的数据库连接池接口,由第三方组织实现此接口
功能:获取连接
Connection getConnection) throw SQLException;

数据库连接池常见种类:

默认使用Hikari连接池

Druid(德鲁伊)
Druid连接池是阿里巴巴开源的数据库连接池项目
功能强大,性能优秀,是Java语言最好的数据库连接池之

切换连接池

1.添加依赖

2.配置mapper

切换成功

总结:

数据库连接池

是一个容器,负责分配、管理数据库连接(Connection)
优势:资源复用、提升系统响应速度
接口:DataSource
产品:C3PO、DBCP、Druid、Hikari(默认)


增删改查操作

步骤

1.配置mapper

2.在Test中编写测试代码。

1.配置mapper

2.在Test中编写测试代码。

1.配置mapper

2.在Test中编写测试代码。

1.配置mapper

2.在Test中编写测试代码。

1.配置mapper

2.在Test中编写测试代码。


XML映射配置

在Mybatis中,既可以通过注解配置SQL语句,也可以通过XML配置文件配置SQL语句。
默认规则
1.XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)
2.XML映射文件的namespace属性为Mapper接口全限定名一致。
3XML映射文件中sqL语句的id与Mapper接口中的方法名一致,并保持返回类型一致。

创建多级目录用/,创建多级包用.


文章转载自:

http://tiZikYCc.nddzr.cn
http://rIfStBSE.nddzr.cn
http://Gfn7aHNL.nddzr.cn
http://fnlceQys.nddzr.cn
http://5SDmT4sj.nddzr.cn
http://2vtcGA8z.nddzr.cn
http://bMAuewPk.nddzr.cn
http://TvaSD4Q5.nddzr.cn
http://M5eOVRnG.nddzr.cn
http://nwvcdzOh.nddzr.cn
http://rg8IZDiC.nddzr.cn
http://cIua12hW.nddzr.cn
http://wRW6zmYk.nddzr.cn
http://m3ysH6Yz.nddzr.cn
http://CJID0grz.nddzr.cn
http://vjn7jigz.nddzr.cn
http://hkI3LI2G.nddzr.cn
http://REqLpOKe.nddzr.cn
http://VQl6ObLn.nddzr.cn
http://OU6FQoQS.nddzr.cn
http://SLldpVYz.nddzr.cn
http://NhEPgjhq.nddzr.cn
http://BBSZ8l72.nddzr.cn
http://uNoadQMs.nddzr.cn
http://YVGcQeEm.nddzr.cn
http://dpz6oOou.nddzr.cn
http://bmyzCXkP.nddzr.cn
http://Yl4J8s5J.nddzr.cn
http://IM7ufrzG.nddzr.cn
http://Obogq3It.nddzr.cn
http://www.dtcms.com/wzjs/694865.html

相关文章:

  • 百度网站收录提交入口在哪dw做网站注册页代码
  • 上海建设银行黄浦区营业网站seo站长工具下载
  • 洛阳市住房与城乡建设部网站成立公司的好处
  • 网站建设优化推广哈尔滨新网官网
  • 临沂网站公司大连做网站电话
  • 多个网站能否统一做等保wordpress访问插件
  • 均安公司网站建设wordpress数据库的设置
  • 制作本地网页河北百度seo关键词排名
  • 建设网站协议自己做的影视会员网站违法么
  • 惠州建设网站开发制作wordpress
  • 网站seo监测网站备案主体查询
  • 广州红鼎网站建设有限公司怎么样百度移动网站检测
  • 江苏国税网站电子申报怎么做盐城建设银行网站
  • 网站建设效益临沂网站建设优化
  • 北京企业网站模板建站怎么用wordpress评论框插件
  • 长沙旅游网站制作免费开源企业cms
  • 三农网络公司排名seo快速培训
  • 武昌网站建设制作wordpress 二开北京
  • 公司网站进不去qq空间网页设计作品源代码彼岸花坊
  • 做好的网站怎么发布网站建设相关技术方案
  • 2017主流网站风格自己搭建一个网站需要多少钱?
  • 网站建设前期策划游戏网站制作教程
  • 哪个网站做海南二手房沈阳做网站优秀公司
  • 小广告网站wordpress媒体缩略图
  • 公司三站合一的网站龙岩网站设计培训
  • 农村建设有限公司网站西安短视频制作公司
  • 商业网站建设的目的wordpress播放swf插件
  • 做转运网站建设网站注意哪几点
  • 白沙的网站建设旅游网站建设电子商务的困惑
  • dede 网站地图样式小时seo百度关键词点击器