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

敦煌网站销售员怎么做seo公司厦门

敦煌网站销售员怎么做,seo公司厦门,网站建设与管理方案的总结,在线做网页的网站JDBC编程基础 JDBC介绍创建JDBC项目的步骤1.引入依赖2.注册驱动3.获取数据库连接4.获取sql执行对象 JDBC 常用 API 详解sql执行对象PreparedStatement作用 事务管理结果集对象 JDBC项目demo测试 JDBC介绍 每个数据库都会提供一组API来支持程序员实现自己客户端,自己…

JDBC编程基础

    • JDBC介绍
    • 创建JDBC项目的步骤
      • 1.引入依赖
      • 2.注册驱动
      • 3.获取数据库连接
      • 4.获取sql执行对象
    • JDBC 常用 API 详解
      • sql执行对象
        • PreparedStatement作用
      • 事务管理
      • 结果集对象
    • JDBC项目demo
      • 测试

JDBC介绍

每个数据库都会提供一组API来支持程序员实现自己客户端,自己根据需求来完成一些具体的增删查改的功能。但数据库也有很多种,例如 Oracle、MySQL、SQL Server 等。显然,这些不同的数据库是出自不同的厂商之手,而对于数据库 API 的约定,并没有一个业界统一的标准。 Java 这种跨平台的语言就弄了一个大统一的方案,就叫JDBC。也就是说,Java约定了一组API,称为 JDBC,这组 API 里面就包含了一些类和一些方法,通过这些类和方法来实现数据库的基本操作。再由各个厂商提供各自的数据驱动包,来和 JDBC 的 API 对接。程序员只需要掌握这一套 JDBC API 就可以操作各种各样的数据库了。

创建JDBC项目的步骤

1.引入依赖

依赖仓库

选择和自己数据库版本相同的连接依赖。

        <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency>

2.注册驱动

不是必须的,在较新的 JDBC 版本中,使用Class.forName("com.mysql.cj.jdbc.Driver");注册驱动已经不是必需的步骤。在较旧的 JDBC 版本(例如 JDBC 3.0 及之前的版本)中,手动加载驱动是必须的,因为在那些版本中,驱动的加载不是由DriverManager自动完成的。

在 JDBC 4.0 及更高版本中,Java引入了服务提供者机制(Service Provider Mechanism),其中DriverManagerregisterDriver方法能够自动识别和加载可用的 JDBC 驱动。因此,对于新的 MySQL Connector/J 驱动,不再需要显式地调用Class.forName("com.mysql.cj.jdbc.Driver");

Class.forName("com.mysql.cj.jdbc.Driver");//mysql8.0
Class.forName("com.mysql.jdbc.Driver");//mysql8.0以前

3.获取数据库连接

String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "120125hzy.";
Connection conn = DriverManager.getConnection(url, user, password);

4.获取sql执行对象

//获取执行sql对象 Statement
Statement stmt = conn.createStatement();//处理结果集
ResultSet rs = null;rs=stmt.executeQuery(sql);//executeQuery 执行select语句
rs=stmt.executeUpdate(sql);//executeUpdate 执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
rs=stmt.execute(sql);//方法execute:可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。如果执行后第一个结果是ResultSet,则返回true,否则返回false。但它执行SQL语句时比较麻烦,通常我们没有必要使用execute方法来执行SQL语句,而是使用executeQuery或executeUpdate更适合,但如果在不清楚SQL语句的类型时则只能使用execute方法来执行该SQL语句了。

JDBC 常用 API 详解

sql执行对象

  • Statement createStatement():普通执行sql对象。
  • PreparedStatement prepareStatement(sql):预编译sql的执行sql对象防止sql注入,可以多次执行,只需变更参数值。
  • CallableStatement prepareCall(sql):执行存储过程的对象。

执行sql语句:

  • int executeUpdate(sql):执行DML,DDL语句,返回DML语句影响的行数,DDL语句执行后,成功也可能返回0。

  • ResultSet executeQuery(sql):执行DQL语句返回值,ResultSet 结果集对象。

PreparedStatement作用

预编译sql语句并执行,预防sql注入

// 获取 PreparedStatement 对象
// sql语句中的参数值,使用?占位符替代
String sql = "select * from user where uesrname = ? and password = ?";
// 通过Connection对象获取,并传入对应的sql语句
PreparedStatement pstmt = conn.prepareStatement(sql); 
/* 设置参数值
PreparedStatement对象:setXxx(参数1,参数2):给?赋值Xxx:数据类型:如setInt(参数1,参数2);参数:参数1:?的位置编号,从1开始参数2:?的值*/
pstmt.setString(1, "zs");
pstmt.setInt(2,123);// 执行sql
pstmt.executeQuery(); // 不需要传递sql

事务管理

  • setAutoCommit(boolean autoCommit):开启事务,true为自动提交事务,false为手动。
  • commit():提交事务。
  • rollback():回滚事务。

结果集对象

ResultSet:封装了DQL查询语句的结果。

获取查询结果:

  • boolean next():将光标向后移动一行,判断当前行是否为有效行
  • xxx getXxx(参数):获取数据
    • xxx:数据类型;如 Int getInt(参数) String getString(参数)。
    • 参数: int:列的编号,从1开始;String :列名。

JDBC项目demo

JDBC连接类

public class JDBC {static Connection connection = null;/*static { 高版本不是必须的,为了兼容性可以写try {Class.forName("com.mysql.cj.jdbc.Driver");} catch (ClassNotFoundException e) {throw new RuntimeException(e);}}*/private JDBC() {}public static Connection getConnection() {try {String url = "jdbc:mysql://localhost:3306/test";String user = "root";String password = "120125hzy.";connection = DriverManager.getConnection(url, user, password);} catch (SQLException e) {System.out.println("数据库连接失败");e.printStackTrace();}System.out.println("数据库连接成功");return connection;}public static void close() {try {if (connection != null && !connection.isClosed()) {connection.close();System.out.println("数据库关闭成功");}} catch (SQLException e) {System.out.println("数据库关闭失败");e.printStackTrace();}}
}

实体类 User

public class User {private int id;private String name;private Double balance;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getBalance() {return balance;}public void setBalance(Double balance) {this.balance = balance;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", balance=" + balance +'}';}
}

Dao 层

public class UserDao {public static List<User> select() {Connection conn = JDBC.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from user2");ResultSet resultSet = ps.executeQuery();List<User> ans = new ArrayList<>();while (resultSet.next()) {User user = new User();user.setId(resultSet.getInt("id"));user.setName(resultSet.getString("name"));user.setBalance(resultSet.getDouble("balance"));ans.add(user);}return ans;} catch (SQLException e) {throw new RuntimeException(e);} finally {JDBC.close();}}public static User selectByID(Integer id) {Connection conn = JDBC.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from user2 where id = ?");ps.setInt(1, id);ResultSet resultSet = ps.executeQuery();User user = new User();while (resultSet.next()) {user.setId(resultSet.getInt("id"));user.setName(resultSet.getString("name"));user.setBalance(resultSet.getDouble("balance"));}return user;} catch (SQLException e) {throw new RuntimeException(e);} finally {JDBC.close();}}public static String updateByID(User user) {Connection conn = JDBC.getConnection();try {PreparedStatement ps =conn.prepareStatement("update user2 set name = ?, balance = ? where id = ?");ps.setString(1, user.getName());ps.setDouble(2, user.getBalance());ps.setInt(3, user.getId());int i = ps.executeUpdate();return i > 0 ? "成功" : "失败";} catch (SQLException e) {throw new RuntimeException(e);} finally {JDBC.close();}}
}

测试

查询所有

    @Testpublic void test01(){// 查询所有List<User> users = UserDao.select();for (User user : users){System.out.println(user);}}

在这里插入图片描述

根据id查询

    @Testpublic void test02() {// 根据id查询User user = UserDao.selectByID(1);System.out.println(user);}

在这里插入图片描述

根据id修改

    @Testpublic void test03() {// 根据id修改User user = new User();user.setId(1);user.setName("李逍遥");user.setBalance(2000.00);System.out.println(UserDao.updateByID(user));// 根据id查询user = UserDao.selectByID(1);System.out.println(user);}

在这里插入图片描述


文章转载自:
http://motet.mdwb.cn
http://plowshare.mdwb.cn
http://kansas.mdwb.cn
http://frigaround.mdwb.cn
http://sallow.mdwb.cn
http://denationalize.mdwb.cn
http://cebu.mdwb.cn
http://lithe.mdwb.cn
http://chrismation.mdwb.cn
http://subinfeud.mdwb.cn
http://tufthunting.mdwb.cn
http://damsite.mdwb.cn
http://chinchy.mdwb.cn
http://rerebrace.mdwb.cn
http://pentastich.mdwb.cn
http://ecocatastrophe.mdwb.cn
http://quadrumana.mdwb.cn
http://dniester.mdwb.cn
http://foundation.mdwb.cn
http://liliaceous.mdwb.cn
http://attu.mdwb.cn
http://divalent.mdwb.cn
http://kilobar.mdwb.cn
http://planimetry.mdwb.cn
http://amulet.mdwb.cn
http://pilocarpine.mdwb.cn
http://chiliarch.mdwb.cn
http://intricate.mdwb.cn
http://compendious.mdwb.cn
http://tinner.mdwb.cn
http://yoick.mdwb.cn
http://glossolalia.mdwb.cn
http://thea.mdwb.cn
http://bivouacking.mdwb.cn
http://suctorial.mdwb.cn
http://quizee.mdwb.cn
http://unifacial.mdwb.cn
http://immaculate.mdwb.cn
http://pfft.mdwb.cn
http://psychiatrist.mdwb.cn
http://daryl.mdwb.cn
http://kroon.mdwb.cn
http://kleig.mdwb.cn
http://alger.mdwb.cn
http://norsethite.mdwb.cn
http://distributivity.mdwb.cn
http://thickhead.mdwb.cn
http://plectra.mdwb.cn
http://armlet.mdwb.cn
http://indological.mdwb.cn
http://misled.mdwb.cn
http://afrikanerdom.mdwb.cn
http://snit.mdwb.cn
http://glowworm.mdwb.cn
http://genipap.mdwb.cn
http://abdicator.mdwb.cn
http://savannah.mdwb.cn
http://glenoid.mdwb.cn
http://fix.mdwb.cn
http://califate.mdwb.cn
http://aluminise.mdwb.cn
http://jeff.mdwb.cn
http://southeasternmost.mdwb.cn
http://kamsin.mdwb.cn
http://lenitively.mdwb.cn
http://improvidence.mdwb.cn
http://inaccessibility.mdwb.cn
http://unconstrained.mdwb.cn
http://subsystem.mdwb.cn
http://epeiric.mdwb.cn
http://nhp.mdwb.cn
http://milanese.mdwb.cn
http://nightside.mdwb.cn
http://battlefield.mdwb.cn
http://micropaleontology.mdwb.cn
http://trilateral.mdwb.cn
http://lithaemic.mdwb.cn
http://hesiodic.mdwb.cn
http://calceiform.mdwb.cn
http://cachinnation.mdwb.cn
http://smuggling.mdwb.cn
http://iotp.mdwb.cn
http://macrophage.mdwb.cn
http://subungulate.mdwb.cn
http://johannes.mdwb.cn
http://dunny.mdwb.cn
http://vitellophag.mdwb.cn
http://fijian.mdwb.cn
http://orc.mdwb.cn
http://phloroglucinol.mdwb.cn
http://sayest.mdwb.cn
http://interdependence.mdwb.cn
http://elevatory.mdwb.cn
http://lassell.mdwb.cn
http://taata.mdwb.cn
http://landlordly.mdwb.cn
http://hugeous.mdwb.cn
http://glume.mdwb.cn
http://nematocystic.mdwb.cn
http://bottomry.mdwb.cn
http://www.15wanjia.com/news/68556.html

相关文章:

  • 自己电脑做的网站如何映射到公网中国百强城市榜单
  • 查排名的网站谷歌搜索引擎免费入口
  • 河北建设厅网站怎么搜索文件手机怎么创建网站
  • 苏州建设项目备案网站优化网站排名解析推广
  • 成都平台公司搜索引擎排名优化seo课后题
  • 临沂网站建设微信网络营销的实现方式
  • 企业网站优化推广公司google官方下载
  • 桂林网站建设百度手机助手苹果版
  • 报名网站怎么做友情链接的网站图片
  • 微信里面如何做网站怎么找网站
  • 做都是正品的网站很难吗百度平台app下载
  • 投资公司的钱从哪里来商丘seo推广
  • java如何做网站南宁网络推广品牌
  • 嘉兴做网站美工的工作深圳网络推广公司有哪些
  • 网站开发工程师需要哪些技术seo实战培训教程
  • 寺庙网站模板新网站seo外包
  • 网站建设找谁做天津百度seo
  • 男女做那种的的视频网站南昌做seo的公司有哪些
  • 最新传奇网页游戏排行榜杭州专业seo公司
  • 想学做网站需要学什么企业管理咨询培训
  • 网站源码风险网络推广都有哪些平台
  • 漯河 做网站今天大事件新闻
  • 什么样的公司愿意做网站天津抖音seo
  • 南通动态网站建设宣传推广
  • 佛山做网站优化公司百度查看订单
  • 网站建设项目内控单搜索图片识别出处百度识图
  • 最好网站建设公司运营团队杭州网站建设书生商友
  • 太原网站制作推荐网络推广站
  • 网站建设成都公司网站关键词优化排名
  • 老网站怎么优化上海网络推广排名公司