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

哈尔滨网站搭建作品展示的网站

哈尔滨网站搭建,作品展示的网站,做网站要不要学ps,排名优化百度https://blog.csdn.net/jg15617651654/article/details/63262456/ JDBC连接数据库教程#xff0c;postgreSQL 流年你奈我何 2017-03-18 17:17:43 17389 收藏 4 分类专栏#xff1a; Postgres 修炼之道 文章标签#xff1a; postgresql 数据库 事务 jdbc 版权 0、概述 …  https://blog.csdn.net/jg15617651654/article/details/63262456/ JDBC连接数据库教程postgreSQL 流年你奈我何 2017-03-18 17:17:43  17389  收藏 4 分类专栏 Postgres 修炼之道 文章标签 postgresql 数据库 事务 jdbc 版权 0、概述 本文借postgreSQL通过JDBC连接数据库的示例介绍了常见数据库操作及JDBC的API、JDBC的一般工作流程及JDBC事务。 1、准备工作 A、下载安装好postgreSQL数据库。 B、新建一个Java项目并导入postgreSQL的JDBC驱动程序jar包。 2、Java连接postgreSQL代码示例。 [java] view plain copy   package vertxTest;    import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.Statement;    public class PostgreSQLJDBC {      public static void main(String args[]) {          Connection c  null;          Statement stmt  null;          try {              Class.forName(org.postgresql.Driver);              c  DriverManager.getConnection(jdbc:postgresql://localhost:5432/pgsqltest, postgres, 2016);              c.setAutoCommit(false); // 把自动提交              System.out.println(Opened database successfully);                stmt  c.createStatement();               String sql  CREATE TABLE STUDENTS                              (ID TEXT PRIMARY KEY     NOT NULL ,                              NAME            TEXT    NOT NULL,                               SEX             TEXT    NOT NULL,                               AGE             TEXT    NOT NULL);               stmt.executeUpdate(sql);               System.out.println(Table created successfully);                            stmt.close();              c.commit();              c.close();          } catch (Exception e) {              System.err.println(e.getClass().getName()  :   e.getMessage());              System.exit(0);          }      }  }  3、常见增删改查操作。 A、定义记录的类可选 [java] view plain copy   package vertxTest;    public class Student {      private String Id;      private String Name;      private String Sex;      private String Age;        Student(String Id,String Name, String Sex, String Age) {          this.Id  Id; //default          this.Name  Name;          this.Sex  Sex;          this.Age  Age;      }        public String getId() {          return Id;      }        public void setId(String Id) {          this.Id  Id;      }        public String getName() {          return Name;      }        public void setName(String Name) {          this.Name  Name;      }        public String getSex() {          return Sex;      }        public void setSex(String Sex) {          this.Sex  Sex;      }        public String getAge() {          return Age;      }        public void setage(String Age) {          this.Age  Age;      }  }  B、JDBC表数据操作方法 [java] view plain copy   package vertxTest;    import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.PreparedStatement;  import java.sql.ResultSet;  import java.sql.SQLException;    public class JDBCOperation {            /**      * method getConn() 获取数据库的连接      * return Connection      */      public Connection getConn() {          String driver  org.postgresql.Driver;          String url  jdbc:postgresql://localhost:5432/pgsqltest;          String username  postgres;          String password  2016;          Connection conn  null;          try {              Class.forName(driver); // classLoader,加载对应驱动              conn  (Connection) DriverManager.getConnection(url, username, password);          } catch (ClassNotFoundException e) {              e.printStackTrace();          } catch (SQLException e) {              e.printStackTrace();          }          return conn;      }            /**      * method insert(Student student) 往表中插入数据      * return int 成功插入数据条数      */      public int insert(Student student) {          Connection conn  getConn();          int i  0;          String sql  insert into students (id,Name,Sex,Age) values(?,?,?,?);          PreparedStatement pstmt;          try {              pstmt  (PreparedStatement) conn.prepareStatement(sql);              pstmt.setString(1, student.getId());              pstmt.setString(2, student.getName());              pstmt.setString(3, student.getSex());              pstmt.setString(4, student.getAge());              i  pstmt.executeUpdate();              pstmt.close();              conn.close();          } catch (SQLException e) {              e.printStackTrace();          }          return i;      }            /**      * method delete(Student student) 删除表中数据      * return int 成功删除表中数据条数      */      public int delete(String name) {          Connection conn  getConn();          int i  0;          String sql  delete from students where Name  name  ;          PreparedStatement pstmt;          try {              pstmt  (PreparedStatement) conn.prepareStatement(sql);              i  pstmt.executeUpdate();              System.out.println(resutl:   i);              pstmt.close();              conn.close();          } catch (SQLException e) {              e.printStackTrace();          }          return i;      }            /**      * method update(Student student) 更改表中数据      * return int 成功更改表中数据条数      */      public int update(Student student) {          Connection conn  getConn();          int i  0;          String sql  update students set Age  student.getAge()   where Name  student.getName()  ;          PreparedStatement pstmt;          try {              pstmt  (PreparedStatement) conn.prepareStatement(sql);              i  pstmt.executeUpdate();              System.out.println(resutl:   i);              pstmt.close();              conn.close();          } catch (SQLException e) {              e.printStackTrace();          }          return i;      }            /**      * method Integer getAll() 查询并打印表中数据      * return Integer 查询并打印表中数据      */      public Integer getAll() {          Connection conn  getConn();          String sql  select * from students;          PreparedStatement pstmt;          try {              pstmt  (PreparedStatement)conn.prepareStatement(sql);              ResultSet rs  pstmt.executeQuery();              int col  rs.getMetaData().getColumnCount();              System.out.println();              while (rs.next()) {                  for (int i  1; i  col; i) {                      System.out.print(rs.getString(i)  \t);                      if ((i  2)  (rs.getString(i).length()  8)) {                          System.out.print(\t);                      }                   }                  System.out.println();              }                  System.out.println();          } catch (SQLException e) {              e.printStackTrace();          }          return null;      }  }  C、测试类 [java] view plain copy   package vertxTest;    public class JDBCTest {      public static void main(String args[]) {          JDBCOperation op  new JDBCOperation();          op.getAll();          op.insert(new Student(001,Achilles, Male, 14));          op.insert(new Student(002,Bean, Fmale, 15));          op.getAll();          op.update(new Student(002,Bean, , 7));          op.delete(Achilles);          op.getAll();      }  }  C、输出结果 001 Achilles   Male   14  002 Bean       Fmale  15  resutl: 1 resutl: 1 002 Bean       Fmale  7   4、代码分析 在上述对数据库进行增删改查的过程中可以发现其共性部分即通用的流程 (1)创建Connection对象、SQL查询命令字符串 (2)对Connection对象传入SQL查询命令获得PreparedStatement对象 (3)对PreparedStatement对象执行executeUpdate()或executeQurey()获得结果 (4)先后关闭PreparedStatement对象和Connection对象。 可见使用JDBC时最常打交道的是Connection、PreparedStatement这两个类以及select中的ResultSet类。 5、JDBC的API API 说明 java.sql.Connection  与特定数据库的连接会话。能够通过getMetaData方法获得数据库提供的信息、所支持的SQL语法、存储过程和此连接的功能等信息。代表了数据库。  java.sql.Driver  每个驱动程序类必需实现的接口同时每个数据库驱动程序都应该提供一个实现Driver接口的类。  java.sql.DriverManager (Class) 管理一组JDBC驱动程序的基本服务。作为初始化的一部分此接口会尝试加载在”jdbc.drivers”系统属性中引用的驱动程序。只是一个辅助类是工具。  java.sql.Statement  用于执行静态SQL语句并返回其生成结果的对象。  java.sql.PreparedStatement  继承Statement接口表示预编译的SQL语句的对象SQL语句被预编译并且存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行该语句。  java.sql.CallableStatement  用来访问数据库中的存储过程。它提供了一些方法来指定语句所使用的输入/输出参数。  java.sql.PreparedStatement  继承Statement接口表示预编译的SQL语句的对象SQL语句被预编译并且存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行该语句。  java.sql.CallableStatement  用来访问数据库中的存储过程。它提供了一些方法来指定语句所使用的输入/输出参数。  6、JDBC的一般工作流程 1加载驱动 Class.forName(“org.postgresql.Driver”); JAVA规范中明确规定所有的驱动程序必须在静态初始化代码块中将驱动注册到驱动程序管理器中。 2建立连接 connDriverManager.getConnection(jdbc:postgresql://localhost:5432/pgsqltest,postgres, 2016); Connection连接是通过DriverManager的静态方法getConnection(.....)来得到的这个方法的实质是把参数传到实际的Driver中的connect()方法中来获得数据库连接的。 postgreSQL URL的格式: jdbc:postgresql:协议XXX.XXX.X.XXX:XXXXIP地址及端口号:XXXXXXX所使用的库名 MySQL URL的写法 例jdbc:mysql://192.168.8.21:3306/test 3获得Statement对象 Statement stmt conn.createStatement(); 4执行sql语句 stmt.executeQuery(String sql); //返回一个查询结果集。 stmt.executeUpdate(String sql); //返回值为int型表示影响记录的条数。 将sql语句通过连接发送到数据库中执行以实现对数据库的操作。 5处理结果集 使用Connection对象获得一个StatementStatement中的executeQuery(Stringsql) 方法可以使用select语句查询并且返回一个结果集。 ResultSet通过遍历这个结果集可以获得select语句的查寻结果ResultSet的next()方法会操作一个游标从第一条记录的前面开始读取直到最后一条记录。 executeUpdate(String sql) 方法用于执行DDL和DML语句比如可以updatedelete操作。 只有执行select语句才有结果集返回。 Statement strcon.createStatement(); //创建Statement String sql”insert into test(id,name)values(1,””’””test””’””)”; str. executeUpdate(sql);//执行Sql语句 String sql”select * from test”; ResultSet rsstr. executeQuery(String sql);//执行Sql语句执行select语句后有结果集 //遍历处理结果集信息 while(rs.next()){ System.out.println(rs.getInt(“id”)); System.out.println(rs.getString(“name”)) } 6关闭数据库连接 rs.close(); stmt.close(); con.close(); ResultSet Statement Connection是依次依赖的。 注意要按先ResultSet结果集后Statement最后Connection的顺序关闭资源因为Statement和ResultSet是需要连接时才可以使用的所以在使用结束之后有可能其它的Statement还需要连接所以不能现关闭Connection。 7、JDBC事务 事务的4大特性 (1) 原子性 事务的原子性指的是事务中包含的程序作为数据库的逻辑工作单位它所做的对数据修改操作要么全部执行要么完全不执行。 原子操作也就是不可分割的操作必须一起成功一起失败。 (2) 一致性 事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束就说该数据库是一致的。 (3) 分离性 分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来不被其它企图进行修改的事务看到。 (4) 持久性 持久性意味着当系统或介质发生故障时确保已提交事务的更新不能丢失。即一旦一个事务提交DBMS保证它对数据库中数据的改变应该是永久性的耐得住任何系统故障。持久性通过数据库备份和恢复来保证。
http://www.sadfv.cn/news/111023/

相关文章:

  • 网站基本常识湖南沙坪建设集团有限公司网站
  • 网站设计公司哪家比较好wordpress5.2附加域
  • 重庆有名的网站建设闵行专业做网站
  • 济南网站建设v芯企优互联不错中山网站建设文化价位
  • 用个人免费空间快速建立个人网站后方平台seo是什么专业的课程
  • 论坛网站模块建设网站的申请信用卡分期
  • 如何做网站粘贴广告学做简单网站
  • 电脑网站开发者模式百度给做网站吗
  • 如何分析网站建设免备案的网站
  • 成都可以做网站的公司网站模板制作教程视频
  • 免费软件站西安网站建设eliwe
  • 个人怎么做课程网站海宁市规划建设局网站
  • 免费企业网站源代码淘宝商城
  • 盐城网站建设找哪家好可以做外包的网站
  • 高端礼品定制网站wordpress 远程代码
  • 网站建设的目的分析上海装修公司口碑最好的是哪家
  • 服务企业建设网站济南WordPress培训
  • 自己做网站详细流程重庆品质网站建设销售
  • 网站开发数据库速度解决方法电商网站开发平台用什么人开发
  • 城乡建设部注册建筑师网站旅游网站 分析
  • 菏泽做网站建设找哪家网络营销的名词解释是什么
  • 做网站知名公司网页免费版
  • 个人如何建立网站扬中市平台公司
  • 公司简介网站怎么做html制作一个简单美食网页
  • 做国外有那些网站比较好钢管公司网站建设
  • 济南360做网站电话北京王府井附近景点攻略
  • 网站开发的流程和步骤是什么公众号菜单跳转网页怎么制作
  • 英国做电商网站辽宁建设工程信息网报名步骤
  • pc网站如何做sp网站被收录 但搜索不到主页
  • 临西县建设网站搜索优化公司