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

临淄58同城招聘信息网网站seo具体怎么做

临淄58同城招聘信息网,网站seo具体怎么做,互联网小程序开发,沈阳手机网站文章目录JDBC1.概念2.原理3. 如何使用JDBC编程1. 下载mysql的jdbc驱动2. 项目中引入驱动4. JDBC使用1. 和数据库建立连接2.获取连接3. Statement对象4. 释放资源JDBC 1.概念 JDBC,即Java Database Connectivity,java数据库连接。是Java提供的API用来执行SQL语句&a…

文章目录

  • JDBC
    • 1.概念
    • 2.原理
    • 3. 如何使用JDBC编程
      • 1. 下载mysql的jdbc驱动
      • 2. 项目中引入驱动
    • 4. JDBC使用
      • 1. 和数据库建立连接
      • 2.获取连接
      • 3. Statement对象
      • 4. 释放资源


JDBC

1.概念

JDBC,即Java Database Connectivity,java数据库连接。是Java提供的API用来执行SQL语句,它是Java中的数据库连接规范,这个API由java.sql.*,javax.sql.*包中的一些类和接口构成,它为Java开发人员操作数据库提供了一个标准的API,提供了多种关系的数据空提供访问。

2.原理

JDBC为多种关系数据库提供了统一访问方式,数据库的种类有很多,每个数据库提供的接口都各不同,Java就能够使用一套代码就能操作各种不同种类的数据库。

Java开发者只需呀关注怎么使用就可以了,JDBC的API是Java标准库里提供好的类,驱动程序往往是一个jar包,访问的是数据库服务器。

在这里插入图片描述

3. 如何使用JDBC编程

1. 下载mysql的jdbc驱动

  • MySQL官网下载
  • 从MySQL的githup下载
  • Maven中央仓库下载

在这里插入图片描述

需要注意的是,如果MySQL的服务器是5.7话,那么驱动包也得是5系列的,8就用8系列的驱动包.

下载后的jar包里其实就是包含了很多.class文件,安装特定的目录结构组织,能够被Java识别.

2. 项目中引入驱动

  1. 创建一个目录
  2. 把jar包拷贝进来
  3. 由键这个目录,add as libray
  4. 然后确定即可

在这里插入图片描述

4. JDBC使用

1. 和数据库建立连接

这个URL是和数据库建立连接时必备的它的基本格式为

String URL = "jdbc:mysql://127.0.0.1:3306/system_book?characterEncoding=utf8&useSSL=false";
  • jdbc:mysql:协议名,对于JDBC来说是固定的
  • 127.0.0.1:数据库服务器ip(这里表示本机Ip)
  • 3306:MySQL默认端口号
  • system_book:数据库名
  • characterEncoding=utf8:当前成员以utf8字符集解析数据
  • useSSL=false:传输是否加密

创建连接代码

private static final String URL = "jdbc:mysql://127.0.0.1:3306/system_book?characterEncoding=utf8&useSSL=false";private static final String USER = "root";private static final String PASSWORD = "root";private static DataSource dataSource = new MysqlDataSource();static {((MysqlDataSource)dataSource).setURL(URL);((MysqlDataSource)dataSource).setUser(USER);((MysqlDataSource)dataSource).setPassword(PASSWORD);}
  • USER:数据库用户名

  • PASSWORD:数据库密码

  • DataSource:是JDBC提供的一个接口

  • MysqlDataSource:是一个类,实现了DataSource接口,用于MySQL操作数据库

  • 这里的setURLsetUsersetPassword都是MysqlDataSource的方法

  • 为啥上述方法不是DataSource接口的?原因就是并不是所有数据都能设置者几个东西

  • 这里的代码为啥要先向上转型再向下转型呢?其实可以写成这样

    MysqlDataSource mysqlDataSource = new MysqlDataSource();mysqlDataSource.setURL(URL);mysqlDataSource.setUser(USER);mysqlDataSource.setPassword(PASSWORD);
    
  • 使用DataSource的好处就是,我们持有的是DataSource示例,它可以接受实现了它的其它类,假设如果后续要更换数据库,只需要修改这几行代码即可。如果使用MysqlDataSource就要修改大量代码

2.获取连接

DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setURL(URL);((MysqlDataSource)dataSource).setUser(USER);((MysqlDataSource)dataSource).setPassword(PASSWORD);
Connection connection = dataSource.getConnection();

在这里插入图片描述

还有一种获取连接的方式,通过DriverManager(驱动管理类)的静态方法获取

Class.forName("com.mysql.jdbc.Driver");Connection connection = DriverManager.getConnection(URL);

以上两种方式的区别是:

  • DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源
    时,通过connection.close()都是关闭物理连接
  • DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接
    是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将
    Conncetion连接对象回收

3. Statement对象

Statement对象主要是将SQL语句发送到数据库中。JDBC API中主要提供了三种Statement对象

  1. PreparedStatement
    • 用于执行带或不带参数的SQL语句
    • SQL语句会预编译再数据库系统
    • 执行速度快于Statement对象
  2. Statement
    • 用于执行不带参数的简单SQL语句
  3. CallableStatement
    • 用于执行数据库存储过程的调用

当然PreparedStatement是最常用的,主要有executeQuery() 方法和executeUpdate()方法

  • executeQuery() 方法执行后返回单个结果集的,通常用于select语句
  • executeUpdate()方法返回值是一个整数,指示受影响的行数,通常用于update、insert、delete
    语句

带有参数的SQL执行

public boolean add(Book book) {Connection connection = null;PreparedStatement statement = null;try {// 和数据库建立连接connection = DBUtil.getConnection();// 拼装sqlString sql =  "insert into book values (null,?,?,?,?,?)";statement = connection.prepareStatement(sql);statement.setString(1,book.getName());statement.setString(2,book.getAuthor());statement.setString(3,book.getType());statement.setBigDecimal(4,book.getPrice());statement.setString(5,"未借出");// 执行sqlint ret = statement.executeUpdate();if (ret > 0) {return true;}} catch (SQLException throwables) {throwables.printStackTrace();} finally {DBUtil.close(connection,statement,null);}return false;}

不带参数的SQL执行

ResultSet对象:ResultSet是一个结果集 ,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法提供
了对这些行中数据的访问 ,我们如果想要取得某一条记录,就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环 。

public List<Book> getAll() {Connection connection = null;PreparedStatement statement = null;ResultSet resultSet = null;List<Book> bookList = new ArrayList<>();try {// 和数据库建立连接connection = DBUtil.getConnection();// 拼装sqlString sql = "select * from book";statement = connection.prepareStatement(sql);// 执行sqlresultSet = statement.executeQuery();while (resultSet.next()) {String bookName = resultSet.getString("name");String auth = resultSet.getString("author");String type =  resultSet.getString("type");BigDecimal price = resultSet.getBigDecimal("price");String status = resultSet.getString("status");Book book = new Book(bookName,auth,type,price);book.setLoanOut(("未借出".equals(status) ? false : true));bookList.add(book);}} catch (SQLException throwables) {throwables.printStackTrace();} finally {DBUtil.close(connection,statement,resultSet);}return bookList;}

4. 释放资源

建立连接后,使用完毕后一定要记得释放这个连接,如果不一直不释放可能就会造成资源泄露的情况。

注意释放的顺序一定是先创建的后释放。

try {// 先创建的额后释放if (resultSet != null) {resultSet.close();}if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException throwables) {throwables.printStackTrace();}

http://www.jinmujx.cn/news/118912.html

相关文章:

  • yfcmf做网站seo外包服务
  • wordpress详细教程佛山网站seo
  • 汽配做的最好的网站seo专业实战培训
  • 专业网站建设效果查域名
  • 上海网站建设的企seo点击工具帮你火21星热情
  • 遵义市住房和城乡建设局网站广东搜索引擎优化
  • 聊城网站推广动态靠谱的代运营公司
  • 网站规划的特点电商项目策划书
  • 杭州哪家公司做网站济南网站运营公司
  • 杭州网站制作报价附近的电脑培训班在哪里
  • 个人网站架设百度关键词搜索查询
  • 电视盒子做网站服务器网络营销方法有哪些举例
  • 如何做好网站建设seo怎么读
  • 照片在线处理工具seo咨询服务
  • django做的网站源码网络推广员一个月多少钱
  • 企业网站建设指导思想谷歌搜索引擎营销
  • 微信分销网站建设哪家好百度搜索开放平台
  • 香港服务器的网站可以做经营么seo优化sem推广
  • 想见你一个网站怎么做百度站长平台工具
  • 上海网站建设软件下载百度搜索推广怎么做
  • 天美影视传媒有限公司关键词优化报价推荐
  • wordpress建站阿里云全国疫情排行榜最新情况列表
  • 做美团网站怎么做成品网站建站空间
  • 做百度联盟用什么做网站网站运营工作内容
  • 用dw自己做网站美发培训职业学校
  • 邯郸网站建设方案360网站收录提交入口
  • ws动态网站开发实训报告全网网站快速排名推广软件
  • 广州网站建设排行深圳优化公司统高粱seo
  • 网站配色网全网营销推广怎么做
  • 越野车网站模板百度热议怎么上首页