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

班级网站建设主题石家庄最新新闻事件

班级网站建设主题,石家庄最新新闻事件,如何申请单位邮箱,用php做购物网站案例目 录 一、实例 二、获取结果集元数据 三、 获取新增数据行的主键值 四、封装工具类 一、实例 # jdbc.cjjdbc.properties drivercom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/jdbc?serverTimezoneAsia/Shanghai&useUnicodetrue&characterEncodingu…

目  录

一、实例

二、获取结果集元数据

三、 获取新增数据行的主键值

四、封装工具类 


一、实例

# jdbc.cjjdbc.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false
user=root
password=root
public class JDBCSelectTest {public static void main(String[] args) {ResourceBundle bundle = ResourceBundle.getBundle("jdbc.cjjdbc");String driver = bundle.getString("driver");String url = bundle.getString("url");String user = bundle.getString("user");String password = bundle.getString("password");Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {// 1.注册驱动Class.forName(driver);// 2.获取连接connection = DriverManager.getConnection(url, user, password);// 3.获取数据库操作对象statement = connection.createStatement();// 4.执行SQL语句String selectSQL = "select id, name, realname, gender, phone from t_user";resultSet = statement.executeQuery(selectSQL);// 5.处理结果while (resultSet.next()) {// 根据查询结果集的列名获取当前行数据int id = resultSet.getInt("id");/*也可以全部通过 String 获取String id1 = resultSet.getString("id");*/String name = resultSet.getString("name");String realName = resultSet.getString("realname");String gender = resultSet.getString("gender");String phone = resultSet.getString("phone");System.out.println(id + "\t" + name + "\t" + realName + "\t" + gender + "\t" + phone);}/*while (resultSet.next()) {// 根据查询结果集的下标获取当前行数据int id = resultSet.getInt(1);String name = resultSet.getString(2);String realName = resultSet.getString(3);String gender = resultSet.getString(4);String phone = resultSet.getString(5);System.out.println(id + "\t" + name + "\t" + realName + "\t" + gender + "\t" + phone);}*/} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {// 6.释放资源if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}
}

        在处理查询结果集的时候:

                1.可以通过 String 类型获取,也可以根据字段指定类型获取

                2.可以通过结果集中的列名获取,也可以通过结果集中的列索引下标获取,下标从 1 开始。


二、获取结果集元数据

        设想一下,如果通过【select * 】来查询数据,但是想要知道结果集中每一列的列名,该如何操作呢?

public class ResultSetMetadata {public static void main(String[] args) {ResourceBundle bundle = ResourceBundle.getBundle("jdbc.cjjdbc");String driver = bundle.getString("driver");String url = bundle.getString("url");String user = bundle.getString("user");String password = bundle.getString("password");Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {Class.forName(driver);connection = DriverManager.getConnection(url, user, password);statement = connection.createStatement();String selectSQL = "select * from t_user";resultSet = statement.executeQuery(selectSQL);/* 通过结果集元数据获取列信息 */ResultSetMetaData metaData = resultSet.getMetaData();//  获取列数int columnCount = metaData.getColumnCount();System.out.println("列数:" + columnCount);for (int i = 1; i <= columnCount; i++) {// 获取列名String columnName = metaData.getColumnName(i);System.out.print(columnName + " ");// 获取列类型String columnTypeName = metaData.getColumnTypeName(i);System.out.print(columnTypeName + " ");// 获取列长度int columnLength = metaData.getColumnDisplaySize(i);System.out.print(columnLength + " ");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}
}


三、 获取新增数据行的主键值

        很多表的主键值都是自增非空的,在某些特殊业务环境下,插入新数据后希望获取这条新数据的主键值,应该如何获取呢?

        可以使用 Statement 接口的 executeUpdate() 方法的重载版本,接收一个额外的参数,用于指定是否需要获取自动生成的主键值。然后通过下述步骤获取新插入的主键值:

        (1)执行 executeUpdate() 方法时指定一个标志位,表示需要返回插入的主键值;

        (2)调用 Statement 对象的 getGeneratedKeys() 方法,返回一个包含插入的主键值的 ResultSet 对象。

public class GetGeneratedKeysTest {public static void main(String[] args) {ResourceBundle bundle = ResourceBundle.getBundle("jdbc.cjjdbc");String driver = bundle.getString("driver");String url = bundle.getString("url");String user = bundle.getString("user");String password = bundle.getString("password");Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {Class.forName(driver);connection = DriverManager.getConnection(url, user, password);statement = connection.createStatement();String insertSQL = "insert into t_user values(null, '1329008366', 'lsf1793', '张佳', '女', '13503209981'),(null, '7382908677', 'zyn3306', '陈烨', '男', '13623845507')";int count = statement.executeUpdate(insertSQL, Statement.RETURN_GENERATED_KEYS);System.out.println("新插入数据条数:" + count);resultSet = statement.getGeneratedKeys();while (resultSet.next()) {long id = resultSet.getLong(1);System.out.println("新插入数据的id:" + id);}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}
}


四、封装工具类 

        在使用 JDBC 进行增、删、改、查操作时,绑定资源、加载驱动、获取连接、释放资源等代码是类似的,可以将其封装为一个工具类,降低代码冗余。

public class DbUtils {// 工具类的构造方法都是私有的,不能被实例化。private DbUtils() {}// 静态变量private static String driver;private static String url;private static String user;private static String password;static {// 读取属性配置文件ResourceBundle bundle = ResourceBundle.getBundle("jdbc.cjjdbc");driver = bundle.getString("driver");url = bundle.getString("url");user = bundle.getString("user");password = bundle.getString("password");// 注册驱动只需要执行一次,所以放在静态代码块中,在类加载时执行try {Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConnection() throws SQLException {Connection connection = DriverManager.getConnection(url, user, password);return connection;}public static void close(Connection connection, Statement statement, ResultSet resultSet) {if (resultSet != null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}
}
public class GetGeneratedKeysTest {public static void main(String[] args) {Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {connection = DbUtils.getConnection();statement = connection.createStatement();String insertSQL = "insert into t_user values(null, '1329008366', 'lsf1793', '张佳', '女', '13503209981'),(null, '7382908677', 'zyn3306', '陈烨', '男', '13623845507')";int count = statement.executeUpdate(insertSQL, Statement.RETURN_GENERATED_KEYS);System.out.println("新插入数据条数:" + count);resultSet = statement.getGeneratedKeys();while (resultSet.next()) {long id = resultSet.getLong(1);System.out.println("新插入数据的id:" + id);}} catch (SQLException e) {e.printStackTrace();} finally {DbUtils.close(connection, statement, resultSet);}}
}
http://www.hkea.cn/news/431369/

相关文章:

  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好
  • 贵阳搜索玩的网站网络舆情软件免费入口
  • 前端自己写代码建网站要花多少钱游戏推广在哪里接活
  • 网站建设中+网页代码nba最新排名东西部
  • 东莞企业建设网站官网有限公司百度推广深圳分公司
  • 海外推广工作内容搜索引擎优化seo是什么
  • wordpress 发短信西安网络优化大的公司
  • dreamweaver个人网站南宁求介绍seo软件
  • 网站常用素材企业培训视频
  • 北京市通州区建设委员会网站网站新站整站排名
  • 太原网站推广只选中联传媒推广排名seo
  • 企业网站建设的常见流程为百度互联网营销顾问
  • 养殖企业网站网络营销策划名词解释
  • 如何进行电子商务网站推广?百度网盘app
  • 做情趣网站需要什么资质sem推广外包
  • 国外网站做任务赚钱的最近新闻有哪些
  • 建设部网站查资质中裕隆百度推广登录平台网址
  • 黄页网站大全免费山东网络推广优化排名
  • 网站文字代码常见的网络营销工具
  • 计算机毕设网站建设怎么改长沙网站设计拓谋网络
  • 类似红盟的网站怎么做aso优化推广
  • vs2013做网站怎样制作免费网页
  • b2c网站的开发无锡网络优化推广公司
  • 网站做视频在线观看营销活动推广方案
  • wordpress多站点统计google图片搜索引擎入口
  • 麻章手机网站建设百度网盘提取码入口