resultset

day28 JavaWEB阶段——JDBC笔记(mysql-5.1.37和mysql-8.0.15数据库驱动包,SQL 注入原因和解决方案,PreparedStatement 完成增、删、改、查)

戏子无情 提交于 2020-01-30 03:54:24
JDBC mysql-5.1.37和mysql-8.0.15数据库驱动包下载 ,如何导入IDEA往下看 今日源码 链接: https://pan.baidu.com/s/12ibAtAjbaRGFPuAcaA52Dg 提取码:n6ux 第1节 回顾 1.1 表连接 内连接: 隐式、显式 隐式: 没有 join,使用 where 显式: inner join…on 外连接: 左连接和右连接 左连接: left outer join … on 右连接: right outer join … on 1.2 子查询 三种情况: 单行单列:比较运算符:>、<、= 多行单列:使用 in 关键字 多行多列:放在 from 后面,做为一张表再次查询 1.3 备份与还原 备份:mysqldump -u 用户名 -p 密码 数据库 > 文件名 还原: 登录使用数据库 use 数据库 source 文件名 1.4 事务 事务四个特性 ACID:原子性、一致性、隔离性、持久性 在 mysql 中有三条语句: 开启事务:start transaction 提交事务:commit 回滚事务:rollback 设置事务回滚点:savepoint 名字 回到回滚点:rollback to 名字 第2节 学习目标 能够理解 JDBC 的概念 能够使用 DriverManager 类 能够使用 Connection

java连接MySQL 函数过程的PROCEDURE

落爺英雄遲暮 提交于 2020-01-28 17:16:33
1.0 @Value("${spring.datasource.url:#{null}}") private String url; @Value("${spring.datasource.username:#{null}}") private String username; @Value("${spring.datasource.password:#{null}}") private String password; public String getMayBeLike1(String phone) { String name= ""; try { Connection connection = DriverManager.getConnection(url,username,password); String sql = "{call get_list(?)}"; CallableStatement callableStatement = connection.prepareCall(sql); callableStatement.setString(1,phone); ResultSet resultSet = callableStatement.executeQuery(); while (resultSet.next()){ name= resultSet

mybatis源码阅读(七) ---ResultSetHandler了解一下

故事扮演 提交于 2020-01-27 14:14:13
转载自 mybatis源码阅读(七) ---ResultSetHandler了解一下 1、MetaObject MetaObject用于反射创建对象、反射从对象中获取属性值、反射给对象设置属性值,参数设置和结果封装,用的都是这个MetaObject提供的功能。 public static MetaObject forObject(Object object, ObjectFactory objectFactory, ObjectWrapperFactory objectWrapperFactory, ReflectorFactory reflectorFactory) { if (object == null) { return SystemMetaObject.NULL_META_OBJECT; } else { return new MetaObject(object, objectFactory, objectWrapperFactory, reflectorFactory); } } public Object getValue(String name) { PropertyTokenizer prop = new PropertyTokenizer(name); if (prop.hasNext()) { MetaObject metaValue =

sharding-jdbc-core 源码分析

不羁的心 提交于 2020-01-26 18:27:18
目录 Sharding-Jdbc 源码分析 1. Sharding-Jdbc 包结构 2. JDBC 四大对象 2.1 DataSource 2.2 Connection 2.3 Statement 2.4 ResultSet 3. Sharding-Jdbc 执行流程分析 4. sharding-jdbc-core 任务执行分析 4.1 ShardingStatement 4.2 StatementExecutor Sharding-Jdbc 源码分析 Apache Sharding-Sphere 系列目录( https://www.cnblogs.com/binarylei/p/12217637.html ) 在看 Sharding-Jdbc 源码之前,强烈建议先阅读一直官网的文章: Apache Sharding-Jdbc 数据分片 JDBC 调用过程如下:APP -> ORM -> JDBC -> PROXY -> MySQL。如果要完成数据的分库分表,可以在这五层任意地方进行,Sharding-Jdbc 是在 JDBC 层进行分库分表,Sharding-Proxy 是在 PROXY 进行分库分表。 Sharding-Jdbc 是一个轻量级的分库分表框架,使用时最关键的是配制分库分表策略,其余的和使用普通的 MySQL 驱动一样,几乎不用改代码。具体使用方法参考:

MyBatis源码的学习(19)---如何将jdbc的返回结果resultSet处理为我们想要的java类型

 ̄綄美尐妖づ 提交于 2020-01-25 07:04:09
处理结果集的逻辑:ResultSetHandler---->TypeHandler @Override public <E> List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { Statement stmt = null; try { Configuration configuration = ms.getConfiguration(); StatementHandler handler = configuration.newStatementHandler(wrapper, ms, parameter, rowBounds, resultHandler, boundSql); //这一步完成connection建立,statement对象的创建,参数的赋值操作 stmt = prepareStatement(handler, ms.getStatementLog()); //我们今天看者一行,如何将jdbc返回的resultSet对象处理为我们想要的java类型 return handler.query(stmt, resultHandler);

java.sql.SQLException: Invalid state, the ResultSet object is closed

大憨熊 提交于 2020-01-25 02:45:07
问题 I am trying to run StoredProcedure using jtds. My database is on SQL SErver 2008 private String DRIVER_NAME_VALUE = "net.sourceforge.jtds.jdbc.Driver"; private String URL_VALUE = "jdbc:jtds:sqlserver://"; ... cstmt =dbConnection.getCallableStatement("{? = call dbo.GetAgentStats (?)}"); . . . rs = cstmt.executeQuery(); when trying to go over the Result set I got the Exception: java.sql.SQLException: Invalid state, the ResultSet object is closed. at net.sourceforge.jtds.jdbc.JtdsResultSet

JDBC获取ResultSet的MetaData 2

两盒软妹~` 提交于 2020-01-24 00:17:46
上一篇关于JDBC获取MetaData的文章: http://www.cnblogs.com/lyhtbc/archive/2012/03/15/jdbc_get_metadata.html 有一个关键的效率问题没有解决:全表扫描。 其实可以通过DatabaseMetaData来获取,并不需要对表进行扫描。 以下是验证表或字段是否存在的方法: 1 public abstract class DatabaseMetaDataUtil { 2 3 public static boolean isTableExisted(DataSource dataSource, String table) { 4 try { 5 DatabaseMetaData metaData = dataSource.getConnection().getMetaData(); 6 ResultSet rs = metaData.getTables( null , null , table, new String[] { "TABLE" }); 7 while (rs.next()) { 8 return true ; 9 } 10 } catch (SQLException e) { 11 // nothing to do 12 } 13 return false ; 14 } 15 16 public

Avoiding skipping a row By next() Method of ResultSet

邮差的信 提交于 2020-01-21 09:59:49
问题 This is a simple code print some rows from a Database. but When I execute this nothing is print on screen. I figured that the problem is rs.next() method is skipping a row. So How can I avoid that or Reset the Position of rs.next() method? String searchword = Searchtf.getText(); try { Class.forName("com.mysql.jdbc.Driver"); java.sql.Connection con = DriverManager.getConnection(url, db_username, db_password); java.sql.Statement stat = con.createStatement(); String searchQuery = "SELECT * FROM

JDBC 连接池的两种方式——dbcp & c3p0

帅比萌擦擦* 提交于 2020-01-21 08:19:31
申明:本文对于连接资源关闭采用自定义的 JDBCUtils 工具: package com.test.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public final class JDBCUtils { private static String driver="com.mysql.jdbc.Driver"; private static String url="jdbc:mysql://localhost:3306/store28"; private static String user="root"; private static String password="root1234"; private JDBCUtils(){} static { /** * 驱动注册 */ try { Class.forName(driver); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } /** * 获取

ORA-01000 error

你。 提交于 2020-01-21 07:46:08
ORA-01000是最大开放游标错误,是Oracle数据库开发中极为常见的错误。 在Java的上下文中,当应用程序尝试打开更多ResultSet而不是数据库实例上的已配置游标时,会发生这种情况。 解决方式: 增加数据库中的最大开放游标数量或减少应用程序中的线程数量; 检查程序,注意关闭ResultSet 来源: https://www.cnblogs.com/kakaisgood/p/11164733.html