resultset

JDBC 线程安全 数据库连接池

烂漫一生 提交于 2020-03-15 09:27:12
jdbc 是线程安全的,但是, 推荐一个线程用一个链接 JDBC is thread safe: It is quite OK to pass the various JDBC objects between threads. For example, you can create the connection in one thread; another thread can use this connection to create a PreparedStatement and a third thread can process the result set. The single major restriction is that you cannot have more than one ResultSet open on a single PreparedStatement at any time . See Does Oracle DB support multiple (parallel) operations per connection?    你不能在一个statment上面存在超过一个打开的resultset(不打开的可以有多个)。 Note that a database commit occurs on a Connection, and so all

JDBC的常用方法

一曲冷凌霜 提交于 2020-03-11 17:12:17
在上一篇文章我们讲了一些基本使用 JDBC-DBCP-MYBATIS 。 1.防止SQL注入 我们在写sql语句时,为了方便可能会进行拼接字符串,这样做的弊端就是可能被sql注入攻击,解决的办法也很简单。 //获取数据库连接 Connection connection = DBUtils.getConnection(); //在写sql语句时,使用?代替变量 String sql = "select * from user where username=? and password=?"; //使用预编译对象进行预编译,就不使用原始的Statement对象 PreparedStatement preparedStatement = connection.prepareStatement(sql); //预编译后进行?的替换 preparedStatement.setString(1,"csdn"); preparedStatement.setString(2,"csdn123"); ResultSet resultSet = preparedStatement.executeQuery(); while(resultSet.next()){ System.out.println(resultSet.getString(1)); } 2.SQL批量操作

Exec SQL IN AX(self)

安稳与你 提交于 2020-03-10 10:28:18
Class:(一定要配 Run On Server) resultSet TestDirectSQLTwo() { connection con=new connection(); statement stm=con.createStatement(); SqlStatementExecutePermission sqlStatementExecutePermission; ResultSET R,R1; str 10000 SQL,SQL1; int i; itemId itemId; qty _qty; ; i = 0; SQL = "select * from inventtable "; sqlStatementExecutePermission = new SqlStatementExecutePermission(sql); sqlStatementExecutePermission.assert(); con.ttsbegin(); R = stm.executeQuery(SQL); return R; // while( R.next()) // { // // ItemID = R.getString(1); // info(Itemid); // }con.ttscommit(); // pause; } JOB static void

pinot查询数据

此生再无相见时 提交于 2020-03-10 08:41:44
pinot查询主要从下面几个方式操作 1、从controller界面去查询 2、pinot脚本查询(因为查询需要通过broker,所以端口为broker的端口) ./pinot-admin.sh PostQuery -brokerPort 8000 -query "select count(*) from transcript" 3、curl命令进行查询 curl -X POST -d '{"pql":"select count(*) from baseballStats"}' http://localhost:8000/query 4、java的api进行查询 Pinot的clientAPI与JDBC类似,但由于Pinot的行为方式不同,所以存在一些差异。例如,具有多个聚合函数的查询将为每个聚合函数返回一个结果集,因为它们是并行计算的。 使用ConnectionFactory类的实用程序方法创建到Pinot的连接,以创建到给定Zookeeper URL、Java属性对象或要连接的代理地址列表的Pinot集群的连接。 Connection connection = ConnectionFactory.fromZookeeper ("some-zookeeper-server:2191/zookeeperPath"); Connection connection =

JDBC之使用Statement,PreparedStatement,ResultSet

萝らか妹 提交于 2020-03-09 11:17:21
1. 创建一个获取 Connection 对象和关闭资源的工具类   在对数据库进行CRUD(①查询数据、②数据插入、③数据修改、④数据删除)操作的时候,每一个操作都需要获取Connection对象,所以我们就可以把 获取 Connection对象的过程 抽离 到一个 工具类 当中,下面是具体代码。 public final class JdbcUtil { private JdbcUtil() { } private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; private static String user = "scott"; private static String password = "tiger"; // 通过静态代码块加载驱动类 static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError("加载驱动类出错!!"); } } // 获取连接对象 public static Connection getConnection() throws Exception {

Oracle的简单查询跟修改

 ̄綄美尐妖づ 提交于 2020-03-09 04:39:08
maven依赖 < dependency > < groupId > com . jslsolucoes < / groupId > < artifactId > ojdbc6 < / artifactId > < version > 11.2 .0 .1 .0 < / version > < / dependency > public class oracle { Connection connection = null ; PreparedStatement preparedStatement = null ; ResultSet resultSet = null ; @Test public void jdbc ( ) { try { //1.注册驱动 Class . forName ( "oracle.jdbc.driver.OracleDriver" ) ; //2.获取数据库连接 connection = DriverManager . getConnection ( "jdbc:oracle:thin:@//localhost:1521/ORCL" , "scott" , "123456" ) ; //3.创建Statement String sql = "select * from books" ; preparedStatement = connection .

How to get the number of columns from a JDBC ResultSet?

▼魔方 西西 提交于 2020-03-08 04:57:24
问题 I am using CsvJdbc (it is a JDBC-driver for csv-files) to access a csv-file. I don't know how many columns the csv-file contains. How can I get the number of columns? Is there any JDBC-function for this? I can not find any methods for this in java.sql.ResultSet. For accessing the file, I use code similar to the example on the CsvJdbc website. 回答1: You can get columns number from ResultSetMetaData: Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(query); ResultSetMetaData

设计模式--池技术与策略模式

百般思念 提交于 2020-03-06 02:10:10
package designpattern.pool; import designpattern.staticagent.MyConnecntion; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class ConnectionPool { private static List<Connection> connections=new ArrayList<>(); static { for (int i=0;i<10;i++){ //可以考虑dbcp,c3p0的配置,进行设置 Connection connection=new MyConnecntion(); connections.add(connection); } } public static synchronized Connection getConnection() throws SQLException { for(Connection connection:connections){ MyConnecntion myConnecntion=(MyConnecntion)connection; if(!myConnecntion

Spring JDBC Framework

让人想犯罪 __ 提交于 2020-03-05 12:06:44
引自 : 学习经典:Spring JDBC Framework 这里记录我对Spring JDBC框架的学习。由于Spring JDBC和我之前做的工作有很多共同之处,学习经典Framework的设计,取长补短,为我所用。 在这里,先佩服一下Rod JohnSon,他对数据库,JDBC的理解非常深。看Spring jdbc框架的设计和源代码,带给了我很多以前没有想到的东西。 我们知道,Spring JDBC的主要目标是为了简化JDBC的编程,方便我们构建健壮的应用程序。这里,它的一个基本设计理念,就是将JDBC编程中变化的和不变化的分开。 在JDBC中,什么是变化的?毫无疑问,SQL语句是变化的。那什么是不变化的?正确的使用JDBC的方式是不变化的。 先看一段代码。 java 代码 public List getAvailableSeatlds(DataSource ds, int performanceld, int seatType) throws ApplicationException { String sql = "SELECT seat_id AS id FROM available_seats " + "WHERE performance_id = ? AND price_band_id = ?" ; List seatlds = new LinkedList();

H2数据库查询实现源码分析

十年热恋 提交于 2020-03-05 10:52:11
设置一个查询入口 ResultSet result = stat . executeQuery ( "select id,name,sex,degree from userInfo where name like '%Hello World%'" ) ; H2中的JdbcStatement实现了Statement @Override public ResultSet executeQuery ( String sql ) throws SQLException { try { int id = getNextId ( TraceObject . RESULT_SET ) ; if ( isDebugEnabled ( ) ) { debugCodeAssign ( "ResultSet" , TraceObject . RESULT_SET , id , "executeQuery(" + quote ( sql ) + ")" ) ; } synchronized ( session ) { checkClosed ( ) ; closeOldResultSet ( ) ; sql = JdbcConnection . translateSQL ( sql , escapeProcessing ) ; CommandInterface command = conn .