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

江苏品牌网站建设wordpress 主

江苏品牌网站建设,wordpress 主,做体彩网站怎么做,宁波工业设计MySQL-JDBC编程 文章目录 MySQL-JDBC编程Java的数据库编程JDBC工作原理JDBC的使用驱动包下载导入代码编写 Java的数据库编程 JDBC#xff0c;即Java Database Connectivity#xff0c;java数据库连接。是一种用于执行SQL语句的Java API#xff0c;它是 Java中的数据库连接…MySQL-JDBC编程 文章目录 MySQL-JDBC编程Java的数据库编程JDBC工作原理JDBC的使用驱动包下载导入代码编写 Java的数据库编程 JDBC即Java Database Connectivityjava数据库连接。是一种用于执行SQL语句的Java API它是 Java中的数据库连接规范。这个API由java.sql.*,javax.sql.*包中的一些类和接口组成它为Java开发人员操作数据库提供了一个标准的API可以为多种关系数据库提供统一访问. 通过Java代码操作MySQL数据库 数据库编程是需要数据库服务器提供一些API(Application Programming Interface),应用程序编程接口~ JDBC工作原理 JDBC访问数据库层次结构: JDBC与数据库关系 JDBC的使用 驱动包下载导入 要想在程序中操作mysql就需要你先安装mysql的驱动包. 我们可以在中央仓库下载到驱动包Maven Repository 因为我装的MySQL是5版本所以对应驱动包也下载的5版本 要是你的MySQL版本是8系列那么驱动包与之对应也是8版本 点击此处进行下载 下载完毕我们在IDEA中导入我们下载的jar我们先创建一个项目然后创建一个新目录一般我们习惯命名lib然后复制刚才下载的jar文件导入即可~ 最后我们将lib这个目录标记为库即完成操作 **注意**再每次创建一个新工程的时候我们都需要导入这个jar包~ 代码编写 前戏做完我们可以来开始编写代码噜~ 先创建DataSource 创建DataSource前我们要做的DataSource这个词它描述“数据源头”即数据库服务器所在的位置。 javax.sql.DataSource;是属于jdbc的包~ 而创建DataSource有两种写法 写法一 DataSource dataSource new MysqlDataSource(); ((MysqlDataSource) dataSource).setUrl();这种转型的写法的初心是为了让MysqlDataSource这个类名不要扩散到代码的其他地方后续如果要修改数据库为别的数据库代码改动比较 小.(mysql和我们程序之间的耦合比较低) 最终目的就是为了能够进一步降低耦合 写法二 MysqlDataSource mysqlDataSource new MysqlDataSource(); mysqlDataSource.setUrl();这种写法就是简单直观。 既然提到了耦合这里我们也详细来看看内聚、耦合。 耦合两个模块之间的关联关系是不是非常紧密是不是这边的变化会影响到另外一边 举个例子 假设你和你的朋友计划去旅行你们决定一起订购机票和酒店。在订购过程中你和朋友之间存在耦合关系。 强耦合如果你们两个人的计划完全相同你们只考虑彼此的意见没有进行任何独立的研究和决策那么你们之间的耦合是强耦合的。这种情况下你们可能会错过其他更好的机票和酒店选择因为你们只关心对方的意见而忽略了其他的选项和可能性。弱耦合如果你和朋友之间保持一定的独立性各自进行研究和对比探索不同的机票和酒店选择并在订购过程中保持一定的自主性那么你们之间的耦合是弱耦合的。这种情况下你们会有更多的选择并能够做出更适合自己的决策 所以我们写代码的时候追求的是低耦合~要是耦合高了随便改某个代码可能会引起其他模块出现bug。 内聚把相同的/相关联的功能放到一起内聚就高.零零散散哪里都有内聚就低. 举个例子 低内聚好比你在家一直乱放东西等到要一天你要找你想要的那个东西你就不得不翻箱倒柜。高内聚反之你平时严格收纳好所有物品这时候就会很容易找到你想要找的东西。 因此综上我们写代码的目标就是高内聚低耦合 所以这里我们选择写法一因为它能够降低程序的耦合性这也让我们的代码更加高效~ DataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/test?characterEncodingutf8sueSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(123456);setUrl这里的Url指的就是网络上的资源位置也就是我们平常所说的网址~ jdbc:mysql://127.0.0.1:3306/test?characterEncodingutf8sueSSLfalse这段Url是给jdbc操作mysql使用的。 127.0.0.1指的是IP地址描述网络上一个主机所在的位置这里的127.0.0.1是一个特殊的ip地址叫做“环回ip”loopback 由于我们的jdbc程序和mysql服务器都在同一个主机上面所以我们就使用“环回ip”即可。所谓“环回”就是自己把数据发送给自己虽然有这种专门环回的网线但是我们也可以通过软件来实现环回的效果~但是如果我们的数据库服务器和应用程序不在同一主机上那么此时我们一个写对应主机的ip而跨主机访问的相关操作需要我们掌握更多的网络原理的知识~ test这里的test就是要访问mysql服务器上的哪个database utf8这里不能写成utf8mb4因为这里不是mysql服务器 false这里就是是否要加密了 root管理员mysql默认自带的用户 123456我不告诉你~ 和数据库服务器建立连接 Connection connection dataSource.getConnection();不过这里会报错 这个是jdbc中常见的异常如果执行sql或者操作数据库过程中出现问题一般都会抛出这个异常。此时我们只需要引入这个包import java.sql.SQLException;然后throws SQLException即可~ 构造sql语句 String sql insert into student values(1, 张三); PreparedStatement statement connection.prepareStatement(sql);PreparedStatementPrepared 预处理的、Statement语句 这里的预处理先解析检查sql,看看sql是不是有啥问题~~解析完毕之后也会得到结构化数据直接把解析好的结构化数据发给数据库服务器服务器就省下了这部分解析的工作 将sql发送给服务器执行sql int n statement.executeUpdate(); System.out.println(n n);这里的n其实就对应我们MySQL那里的行数。 执行完毕之后最后一个步骤关闭连接释放资源 程序通过代码和服务器进行通信是需要消耗一定的硬件/软件资源 在程序结束的时候就需要告知服务器释放这些资源/客户端也需要释放资源. 有借有还再借不难. statement.close(); connection.close();总代码 import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;//通过这个代码往数据库的表中插入一行记录 public class Demo1 {public static void main(String[] args) throws SQLException {//1.先创建 DataSourceDataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/test?characterEncodingutf8sueSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(123456);//2.建立和数据库服务器之间的连接连接好了之后 才能进行后续的 请求-响应 交互Connection connection dataSource.getConnection();//3.构造sqlString sql insert into student values(1, 杨洋);PreparedStatement statement connection.prepareStatement(sql);//4.把sql发送给服务器,返回值是一个整数表示影响到的行数int n statement.executeUpdate();System.out.println(n n);//5.释放资源关闭连接释放顺序是获取到的资源先释放statement.close();connection.close();} }执行效果如下 这是我们表里目前的数据下面我们Java代码操作数据库~ 此时我们再看表 不过这里我们需要注意的是修改和删除的代码写法和插入是非常类似的~ 只要调整sql内容即可~ String sql delete from student where id 1 ;String sql update student set name 张三 where id 100;这里抛出个问题我们上述的语句是写死的那么我们怎么在程序运行时输入id name来进行插入 如下 Scanner scanner new Scanner(System.in);System.out.println(请输入学号);int id scanner.nextInt();System.out.println(请输入姓名);String name scanner.next();String sql insert into student values( id , name );但是这种写法不优雅也不安全可能会导致sql注入攻击 要是在这个语句中把name,写成以下这样子 ); drop database xxx;阁下应该怎么应对呢看我把你的库都删完了~ 所以我们推荐以下这种写法 String sql insert into student values();使用作为占用符~ String sql insert into student values(?,?);PreparedStatement statement connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2,name);针对占用符进行替换~ 查询 import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;//jdbc 查询写法 public class Demo2 {public static void main(String[] args) throws SQLException {//1. 创建DataSourceDataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/test?characterEncodingutf8sueSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(123456);//2. 建立连接Connection connection dataSource.getConnection();//3.构造sqlString sql select * from student;PreparedStatement statement connection.prepareStatement(sql);//4.执行sql//ResultSet 表示查询的结果集合临时表此处就需要针对这个表进行遍历ResultSet resultSet statement.executeQuery();//resultSet提供了getXXX方法.列是啥类型就使用哪个方法根据列名就可以取出对应的值了.//5.遍历 结果集合//通过 next 代码就可以获得临时表中的每一行数据如果获取到最后一行再执行 next 返回 false 循环结束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();} }
http://www.zqtcl.cn/news/128170/

相关文章:

  • 沧州企业网站深圳建筑招聘网
  • 汽车网站开发的需求分析怎样策划一个营销型网站
  • 网站建设公司彩铃网站模板是怎么制作
  • 代做毕设网站推荐一键安装微信
  • 网站建设评比标准人工智能的网站
  • 网站 提示建设中计算机网站建设和维护
  • 网站菜单分类怎么做wordpress黄页插件
  • 安防网站下载营销型网站建设 高校邦
  • 一个几个人做网站的几个故事电影网站开发设计的完成情况
  • 如何开个人网站网站建设技能考试试题三
  • 做网站都要学什么工程造价询价网站
  • 东莞市官网网站建设企业福田做商城网站建设哪家服务周到
  • 网站界面设计技巧宁波seo排名优化价格
  • 做外贸经常用的网站需要优化的网站有哪些
  • 俄语网站建设注意事项seo公司优化排名
  • jsp做的当当网站的文档专业电子科技网站建设
  • 有免费的微网站是什么推广普通话调查问卷
  • 滁州市南谯区住房和建设局网站网站服务器规划 用户数
  • 静态企业网站源码网站sem托管
  • 17网站一起做网店打不开专业做网站公司 前景
  • 哪个网站可以做围棋作业游览有关小城镇建设的网站
  • 这么建立com的网站开发公司以现金方式补贴给客户
  • 网站建设 常见问题wordpress 手机顶部菜单
  • 医院网站 功能系统开发文档
  • 免费的企业网站网站空间商排名
  • 格子三合一交友婚恋网站模板网站后台用什么
  • 网站运营与管理期末考试数字营销经典案例
  • 官方网站英语门户网站策划书
  • 建国外网站需要多少钱做网站的底图尺寸多大
  • wordpress页面更新发布失败seo网络优化是做什么的