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

中国建设银行假网站上海网络优化服务

中国建设银行假网站,上海网络优化服务,做技能培训和那个网站合作好,wordpress 4.3.18漏洞Content 🎉1什么是API 🎉2.什么是JDBC 🎉3.数据库驱动包的安装 🎉4.数据库安装包在idea的使用 🎉5.JDBC的增删改查的简单实现 今天为大家带来JAVA的数据库编程,也就是用Java实现数据库 数据库的最基本的操作就是…

Content

🎉1什么是API

🎉2.什么是JDBC

🎉3.数据库驱动包的安装

🎉4.数据库安装包在idea的使用

🎉5.JDBC的增删改查的简单实现

今天为大家带来JAVA的数据库编程,也就是用Java实现数据库

数据库的最基本的操作就是增删改查

在实工作中,手敲sql语句几乎用不到,更多的是用代码来实现sql语句

像常见的数据库,比如mysal,sqlsever,Oracle等数据库软件,在开发的时候会提供编程的接口,叫做API

什么是API呢,也就是实现某种功能,例如Java的接口,就是API,比如Collection接口,里面有很多方法,可以实现很多功能,总的来说API多用于函数的形式来表示

现在要用Java实现数据库,那么也需要提供一个API用来对接Java和数据库,那么就要用JDBC,Java对数据库提出要求,数据库本来的功能上要增加一些来匹配Java,这样才可以让Java操作数据库,执行数据库.

JDBC,全称,Java Database Connectivity,是java和数据库的连接。是一种用于执行SQL语句的Java API,它是 Java中的数据库连接规范。可以为多种关系数据库提供统一访问.

Java通过JDBC操作数据库,那jdbc和数据库建立连接的时候,需要使用数据库驱动包,就是对不同数据库的原生API进行封装,封装成JDBC认识的API,,Java需要在项目导入数据库驱动包,也才能执行数据库,那么我们就需要下载驱动包,这里我们选择去maven中央仓库下载

上链接

https://mvnrepository.com/

这个要和自己下载的数据库的版本要匹配,因为我下载的是5系列的,所以我要用这个,5开头的都可以选

点击这个

然后下载了,之后,建立一个项目,然后在项目点新建directory,拷贝这个地址,就建立了lib文件

就像这样,这样数据库就和java建立连接了,现在就可以开始在idea编辑数据库代码了

还是和数据库一样,实现增删改查,上代码

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.ConnectionEvent;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** Created with IntelliJ IDEA.* Description:* User: WHY* Date: 2023-03-03* Time: 20:57*/
//JDBC实现sql
public class JDBCInsert {public static void main(String[] args) throws SQLException {//JDBC需要以下步骤完成开发//1.创建并初始化一个数据源DataSource dataSource=new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//向下转型,因为seturl这个方法是子方法特有的((MysqlDataSource)  dataSource).setUser("root");//设置用户名((MysqlDataSource)   dataSource).setPassword("1111");//就是数据库的密码//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();//3.构造sql语句String sql="insert into student values(1,'张三')";PreparedStatement statement=connection.prepareStatement(sql);//提前预编译一下sql,客户端对发出的请求进行预编译,减轻服务器的压力//4.执行sql语句int ret=  statement.executeUpdate();System.out.println(ret);//5.释放必要的资源statement.close();connection.close();}
}

看看执行结果,在idea上结果是1的原因是,stament.executeUpdate这个方法返回类型就是int型的,代表修改的行数

执行完以后记得释放资源

现在对这段代码进行优化,发现在构造sql语句的时候比较麻烦,进行优化

String sql="insert into student values(1,'张三')"; 

这个语句把要输入的内容写死了,也就是硬编码,在现实开发环境中,要为用户考虑,所以要写用户输入

public class JDBCInsert {public static void main(String[] args) throws SQLException {Scanner scanner=new Scanner(System.in);//JDBC需要以下步骤完成开发//1.创建并初始化一个数据源DataSource dataSource=new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//向下转型,因为seturl这个方法是子方法特有的((MysqlDataSource)  dataSource).setUser("root");//设置用户名((MysqlDataSource)   dataSource).setPassword("1111");//就是数据库的密码//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();//3.从控制台读取用户输入的的内容System.out.println("请输入姓名");String name=scanner.next();System.out.println("请输入学号");int id=scanner.nextInt();//4.构造sql语句String sql="insert into student values("+id+",'"+name+"')";PreparedStatement statement=connection.prepareStatement(sql);//提前预编译一下sql,客户端对发出的请求进行预编译,减轻服务器的压力//5.执行sql语句int ret=  statement.executeUpdate();System.out.println(ret);//6.释放必要的资源statement.close();connection.close();}

但是这种写法容易产生sql注入问题

 public static void main(String[] args) throws SQLException {Scanner scanner=new Scanner(System.in);//JDBC需要以下步骤完成开发//1.创建并初始化一个数据源DataSource dataSource=new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//向下转型,因为seturl这个方法是子方法特有的((MysqlDataSource)  dataSource).setUser("root");//设置用户名((MysqlDataSource)   dataSource).setPassword("1111");//就是数据库的密码//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();//3.从控制台读取用户输入的的内容System.out.println("请输入姓名");String name=scanner.next();System.out.println("请输入学号");int id=scanner.nextInt();//4.构造sql语句String sql="insert into student values(?,?)";PreparedStatement statement=connection.prepareStatement(sql);//提前预编译一下sql,客户端对发出的请求进行预编译,减轻服务器的压力statement.setInt(1,id);statement.setString(2,name);//5.执行sql语句int ret=  statement.executeUpdate();System.out.println(ret);//6.释放必要的资源statement.close();connection.close();}

问号代表占位符,下面的setint里面的1,id代表第一个问号放id,第二个问号放name ,然后根据动态输入就自动放入到sql语句中

 

这一段就是Preparestatement方法拼接以后 的数据

释放资源:

数据库的客户端和服务器通过网络进行通信,需要占用一定的资源,但客户端很多,服务器很少时,要即及时释放资源

谁先创建,谁就后释放

DataSource内置了数据库连接池,可以复用连接,提高连接服务器的效率

现在写查询操作

public class TestDemo {public static void main(String[] args) throws SQLException {//JDBC需要以下步骤完成开发//1.创建并初始化一个数据源DataSource dataSource=new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//向下转型,因为seturl这个方法是子方法特有的((MysqlDataSource)  dataSource).setUser("root");//设置用户名((MysqlDataSource)   dataSource).setPassword("1111");//就是数据库的密码//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();//3.构造sql语句String sql="select* from student";PreparedStatement statement=connection.prepareStatement(sql);//提前预编译一下sql,客户端对发出的请求进行预编译,减轻服务器的压力//4.执行sql语句ResultSet resultSet= statement.executeQuery();//5遍历结果集合while(resultSet.next()){int id=resultSet.getInt("id");String name=resultSet.getString("name");System.out.println("+id+"+id+"name"+name);}//6.释放必要的资源resultSet.close();statement.close();connection.close();}

 resultset这个代表查询的结果集,用到的get方法相当于就是拿到某下标 的元素

删除操作

public static void main(String[] args) throws SQLException {Scanner scanner=new Scanner(System.in);//JDBC需要以下步骤完成开发//1.创建并初始化一个数据源DataSource dataSource=new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//向下转型,因为seturl这个方法是子方法特有的((MysqlDataSource)  dataSource).setUser("root");//设置用户名((MysqlDataSource)   dataSource).setPassword("1111");//就是数据库的密码//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();/*//3.从控制台读取用户输入的的内容System.out.println("请输入姓名");String name=scanner.next();System.out.println("请输入学号");int id=scanner.nextInt();*///4.构造sql语句String sql="delete from student where id=1";PreparedStatement statement=connection.prepareStatement(sql);//提前预编译一下sql,客户端对发出的请求进行预编译,减轻服务器的压力/*  statement.setInt(1,id);statement.setString(2,name);*/System.out.println(statement);//5.执行sql语句int ret=  statement.executeUpdate();System.out.println(ret);//6.释放必要的资源statement.close();connection.close();}
}

修改操作

 public static void main1(String[] args) throws SQLException {Scanner scanner=new Scanner(System.in);//JDBC需要以下步骤完成开发//1.创建并初始化一个数据源DataSource dataSource=new MysqlDataSource();//向上转型((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//向下转型,因为seturl这个方法是子方法特有的((MysqlDataSource)  dataSource).setUser("root");//设置用户名((MysqlDataSource)   dataSource).setPassword("1111");//就是数据库的密码//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();/*//3.从控制台读取用户输入的的内容System.out.println("请输入姓名");String name=scanner.next();System.out.println("请输入学号");*//*int id=scanner.nextInt();*///3.构造sql语句String sql="update student set id=12 where name='张三'";PreparedStatement statement=connection.prepareStatement(sql);//提前预编译一下sql,客户端对发出的请求进行预编译,减轻服务器的压力System.out.println(statement);//4.执行sql语句int ret=  statement.executeUpdate();System.out.println(ret);//5.释放必要的资源statement.close();connection.close();}

这就是今天的所有内容了,我们下期再见!!!

http://www.khdw.cn/news/20459.html

相关文章:

  • wordpress html编辑器插件seo怎么优化武汉厂商
  • 阿里巴巴网站建设缺点广州网络广告推广公司
  • 大连建设工程信息网专家库网络营销seo是什么意思
  • 关于推进政府网站集约化建设的通知静态网页制作
  • 河南建设部网站官网武汉做seo公司
  • 网站后台英文百度手机网页
  • 诸城网站做的好的关键词挖掘啊爱站网
  • 深圳龙华汽车站附近有做网站建设的百度推广总部电话
  • 政府网站欣赏自己做网络推广怎么做
  • 网站服务器租用协议g3云推广靠谱吗
  • 关键词seo排名怎么做的天津外贸seo推广
  • 建设主管部门官方网站seoul是什么品牌
  • 做网站字体要求品牌整合推广
  • 网站选择空间百度站长工具怎么用
  • 虹口做网站价格网站优化方案案例
  • 做网站有哪些公司好推广竞价托管公司
  • 在万网申请的域名_需要把万网的账户密码给做网站的吗怎么做手工
  • asp网站开发 pdf青岛seo推广
  • dedecms 食品网站网络营销计划的七个步骤
  • 刷赞网站推广免费软件网络销售是什么
  • wampserver装wordpress宝鸡百度seo
  • 门户网站后台管理模板手机免费建网站
  • wordpress写文章报错黑帽seo寄生虫
  • 网站logo在哪里修改培训网站设计
  • 中国做美国网站的翻译兼职如何宣传推广
  • 怎么让网站栏目页收录搜索引擎排名优化建议
  • 百度推广方式有哪些赣州seo外包怎么收费
  • 免费做app的网站哪个好上海网站排名优化公司
  • 广西省人民政府长沙seo霜天博客
  • 重庆建网站现在比较好的营销平台