-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
730 additions
and
183 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,30 @@ | ||
import com.sqlpal.SqlPal; | ||
import com.sqlpal.exception.ConnectionException; | ||
import com.sqlpal.crud.DataSupport; | ||
import entity.News; | ||
|
||
import java.sql.ResultSet; | ||
import java.sql.SQLException; | ||
import java.sql.Statement; | ||
|
||
public class Main { | ||
|
||
public static void main(String[] args) { | ||
SqlPal.init(); | ||
|
||
try { | ||
SqlPal.begin(); | ||
|
||
News news = new News(); | ||
news.setId(816); | ||
news.setTitle("aaa"); | ||
news.save(); | ||
|
||
SqlPal.end(); | ||
} catch (SQLException | ConnectionException e) { | ||
Statement stmt = DataSupport.executeQuery("select * from news"); | ||
ResultSet rs = stmt.getResultSet(); | ||
while (rs.next()) { | ||
System.out.println(rs.getString("title")); | ||
} | ||
} catch (SQLException e) { | ||
e.printStackTrace(); | ||
} finally { | ||
SqlPal.end(); | ||
} | ||
|
||
|
||
SqlPal.destroy(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.sqlpal; | ||
|
||
import java.sql.Connection; | ||
import java.sql.SQLException; | ||
|
||
/** | ||
* 自动关闭Statement | ||
*/ | ||
public interface AutoConnection extends Connection{ | ||
void closeStatements() throws SQLException; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,321 @@ | ||
package com.sqlpal.manager; | ||
|
||
import com.sqlpal.AutoConnection; | ||
|
||
import java.sql.*; | ||
import java.util.Map; | ||
import java.util.Properties; | ||
import java.util.concurrent.ConcurrentLinkedQueue; | ||
import java.util.concurrent.Executor; | ||
|
||
public class MyConnection implements AutoConnection { | ||
private Connection conn; | ||
private ConcurrentLinkedQueue<Statement> statements = new ConcurrentLinkedQueue<>(); | ||
|
||
public MyConnection(Connection conn) { | ||
this.conn = conn; | ||
} | ||
|
||
@Override | ||
public Statement createStatement() throws SQLException { | ||
Statement stmt = conn.createStatement(); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public PreparedStatement prepareStatement(String sql) throws SQLException { | ||
PreparedStatement stmt = conn.prepareStatement(sql); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public CallableStatement prepareCall(String sql) throws SQLException { | ||
CallableStatement stmt = conn.prepareCall(sql); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public String nativeSQL(String sql) throws SQLException { | ||
return conn.nativeSQL(sql); | ||
} | ||
|
||
@Override | ||
public void setAutoCommit(boolean autoCommit) throws SQLException { | ||
conn.setAutoCommit(autoCommit); | ||
} | ||
|
||
@Override | ||
public boolean getAutoCommit() throws SQLException { | ||
return conn.getAutoCommit(); | ||
} | ||
|
||
@Override | ||
public void commit() throws SQLException { | ||
conn.commit(); | ||
} | ||
|
||
@Override | ||
public void rollback() throws SQLException { | ||
conn.rollback(); | ||
} | ||
|
||
@Override | ||
public void close() throws SQLException { | ||
closeStatements(); | ||
conn.close(); | ||
} | ||
|
||
@Override | ||
public boolean isClosed() throws SQLException { | ||
return conn.isClosed(); | ||
} | ||
|
||
@Override | ||
public DatabaseMetaData getMetaData() throws SQLException { | ||
return conn.getMetaData(); | ||
} | ||
|
||
@Override | ||
public void setReadOnly(boolean readOnly) throws SQLException { | ||
conn.setReadOnly(readOnly); | ||
} | ||
|
||
@Override | ||
public boolean isReadOnly() throws SQLException { | ||
return conn.isReadOnly(); | ||
} | ||
|
||
@Override | ||
public void setCatalog(String catalog) throws SQLException { | ||
conn.setCatalog(catalog); | ||
} | ||
|
||
@Override | ||
public String getCatalog() throws SQLException { | ||
return conn.getCatalog(); | ||
} | ||
|
||
@Override | ||
public void setTransactionIsolation(int level) throws SQLException { | ||
conn.setTransactionIsolation(level); | ||
} | ||
|
||
@Override | ||
public int getTransactionIsolation() throws SQLException { | ||
return conn.getTransactionIsolation(); | ||
} | ||
|
||
@Override | ||
public SQLWarning getWarnings() throws SQLException { | ||
return conn.getWarnings(); | ||
} | ||
|
||
@Override | ||
public void clearWarnings() throws SQLException { | ||
conn.clearWarnings(); | ||
} | ||
|
||
@Override | ||
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException { | ||
Statement stmt = conn.createStatement(resultSetType, resultSetConcurrency); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException { | ||
PreparedStatement stmt = conn.prepareStatement(sql, resultSetType, resultSetConcurrency); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException { | ||
CallableStatement stmt = conn.prepareCall(sql, resultSetType, resultSetConcurrency); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public Map<String, Class<?>> getTypeMap() throws SQLException { | ||
return conn.getTypeMap(); | ||
} | ||
|
||
@Override | ||
public void setTypeMap(Map<String, Class<?>> map) throws SQLException { | ||
conn.setTypeMap(map); | ||
} | ||
|
||
@Override | ||
public void setHoldability(int holdability) throws SQLException { | ||
conn.setHoldability(holdability); | ||
} | ||
|
||
@Override | ||
public int getHoldability() throws SQLException { | ||
return conn.getHoldability(); | ||
} | ||
|
||
@Override | ||
public Savepoint setSavepoint() throws SQLException { | ||
return conn.setSavepoint(); | ||
} | ||
|
||
@Override | ||
public Savepoint setSavepoint(String name) throws SQLException { | ||
return conn.setSavepoint(name); | ||
} | ||
|
||
@Override | ||
public void rollback(Savepoint savepoint) throws SQLException { | ||
conn.rollback(); | ||
} | ||
|
||
@Override | ||
public void releaseSavepoint(Savepoint savepoint) throws SQLException { | ||
conn.rollback(savepoint); | ||
} | ||
|
||
@Override | ||
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { | ||
Statement stmt = conn.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { | ||
PreparedStatement stmt = conn.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { | ||
CallableStatement stmt = conn.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { | ||
PreparedStatement stmt = conn.prepareStatement(sql, autoGeneratedKeys); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { | ||
PreparedStatement stmt = conn.prepareStatement(sql, columnIndexes); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { | ||
PreparedStatement stmt = conn.prepareStatement(sql, columnNames); | ||
statements.add(stmt); | ||
return stmt; | ||
} | ||
|
||
@Override | ||
public Clob createClob() throws SQLException { | ||
return conn.createClob(); | ||
} | ||
|
||
@Override | ||
public Blob createBlob() throws SQLException { | ||
return conn.createBlob(); | ||
} | ||
|
||
@Override | ||
public NClob createNClob() throws SQLException { | ||
return conn.createNClob(); | ||
} | ||
|
||
@Override | ||
public SQLXML createSQLXML() throws SQLException { | ||
return conn.createSQLXML(); | ||
} | ||
|
||
@Override | ||
public boolean isValid(int timeout) throws SQLException { | ||
return conn.isValid(timeout); | ||
} | ||
|
||
@Override | ||
public void setClientInfo(String name, String value) throws SQLClientInfoException { | ||
conn.setClientInfo(name, value); | ||
} | ||
|
||
@Override | ||
public void setClientInfo(Properties properties) throws SQLClientInfoException { | ||
conn.setClientInfo(properties); | ||
} | ||
|
||
@Override | ||
public String getClientInfo(String name) throws SQLException { | ||
return conn.getClientInfo(name); | ||
} | ||
|
||
@Override | ||
public Properties getClientInfo() throws SQLException { | ||
return conn.getClientInfo(); | ||
} | ||
|
||
@Override | ||
public Array createArrayOf(String typeName, Object[] elements) throws SQLException { | ||
return conn.createArrayOf(typeName, elements); | ||
} | ||
|
||
@Override | ||
public Struct createStruct(String typeName, Object[] attributes) throws SQLException { | ||
return conn.createStruct(typeName, attributes); | ||
} | ||
|
||
@Override | ||
public void setSchema(String schema) throws SQLException { | ||
conn.setSchema(schema); | ||
} | ||
|
||
@Override | ||
public String getSchema() throws SQLException { | ||
return conn.getSchema(); | ||
} | ||
|
||
@Override | ||
public void abort(Executor executor) throws SQLException { | ||
conn.abort(executor); | ||
} | ||
|
||
@Override | ||
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException { | ||
conn.setNetworkTimeout(executor, milliseconds); | ||
} | ||
|
||
@Override | ||
public int getNetworkTimeout() throws SQLException { | ||
return conn.getNetworkTimeout(); | ||
} | ||
|
||
@Override | ||
public <T> T unwrap(Class<T> iface) throws SQLException { | ||
return conn.unwrap(iface); | ||
} | ||
|
||
@Override | ||
public boolean isWrapperFor(Class<?> iface) throws SQLException { | ||
return conn.isWrapperFor(iface); | ||
} | ||
|
||
@Override | ||
public void closeStatements() throws SQLException { | ||
Statement stmt; | ||
while ((stmt = statements.poll()) != null) { | ||
stmt.close(); | ||
} | ||
} | ||
} |
Oops, something went wrong.