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

卢湾青岛网站建设做个公司网站多少钱

卢湾青岛网站建设,做个公司网站多少钱,崇文网站建设,做app必须有网站目 录 一、实例 二、获取结果集元数据 三、 获取新增数据行的主键值 四、封装工具类 一、实例 # 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/975746/

相关文章:

  • 江苏 网站备案百度贴吧官网app下载
  • 网站制作三站湖南网站seo公司
  • 简单做任务赚钱网站企业管理培训课程报名
  • 零点研究咨询集团官方网站建设相似图片在线查找
  • 网站开发需要什么软件关键词app
  • 360全景网站建设做了5天游戏推广被抓了
  • 政府网站建设经验典型材料河源今日头条新闻最新
  • 为什么要进行网站备案佛山市人民政府门户网站
  • 摄影网站开发背景百度app交易平台
  • 吉林网站建设石家庄百度快照优化排名
  • 大学生网站开发总结报告app推广接单发布平台
  • 自己做的网站怎么推广seo顾问培训
  • 怎么做业务网站百度搜索提交入口
  • 网页设计网站图片西安百度推广运营公司
  • 济南网站开发推广网络服务包括
  • 五星级酒店网站建设关键词歌词表达的意思
  • 浙江高端建设网站网站关键词如何优化
  • 2017网站开发工程师五合一网站建设
  • 学编程的孩子有什么好处seo网站诊断文档案例
  • 广州中新知识城开发建设网站无锡百姓网推广
  • 宝鸡做网站费用关键词你们懂的
  • wordpress 仿站 教程百度竞价点击一次多少钱
  • 做h的游戏 迅雷下载网站百度推广管家
  • 营销型网站建设的目的外贸网站平台都有哪些 免费的
  • 广东做网站公司广州从化发布
  • 能发外链的网站国际新闻今天最新消息
  • 做软件的网站关键词优化快速排名
  • 网站建设与管理简介网站链接交易
  • 英文网站建设教程网盘资源搜索神器
  • 做旅游网站的引言最新网络推广平台