Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der JDBC-Verbindung zu MySQL-Instanz_MySQL

Detaillierte Erläuterung der JDBC-Verbindung zu MySQL-Instanz_MySQL

WBOY
WBOYOriginal
2016-11-30 23:59:411054Durchsuche

JDBC-Verbindung zu MySQL

JDBC stellt eine Verbindung zu MySQL her

JDBC-Treiber laden und registrieren

Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();

JDBC-URL definiert die Verbindung zwischen dem Treiber und der Datenquelle

Standardsyntax:

4ad396a8488453cb3d9ac554d46ad1b4:69d0ddef60beee459e2b6551a802caf8:2da4df3cb85754e520f208d8c142b0fc

MySQL JDBC URL-Format:

jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][¶m2=value2]….

Beispiel: jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password

Gemeinsame Parameter:
Benutzer Benutzername
Passwort Passwort
autoReconnect Verbindung fehlgeschlagen, ob die Verbindung wiederhergestellt werden soll (wahr/falsch)
maxReconnect Die Anzahl der Versuche, die Verbindung wiederherzustellen
InitialTimeout versucht, das Intervall
erneut zu verbinden maxRows Gibt die maximale Anzahl von Zeilen zurück
useUnicode Ob Unicode-Schriftartkodierung verwendet werden soll (true/false)
CharacterEncoding Welche Codierung (GB2312/UTF-8/…)
relaxAutocommit Ob automatisch übermittelt werden soll (wahr/falsch)
capitalizeTypeNames Der Name der Datendefinition wird in Großbuchstaben ausgedrückt

Verbindungsobjekt herstellen

String url="jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password";
Connection con = DriverManager.getConnection(url);

SQL-Anweisungsobjekt erstellen (Statement Object)

Anweisung stmt = con.createStatement();

SQL-Anweisung ausführen

executeQuery()
String query = "select * from test";
ResultSet rs=stmt.executeQuery(query);
结果集ResultSet
while(rs.next())
{rs.getString(1);rs.getInt(2);}
executeUpdate()
String upd="insert into test (id,name) values(1001,xuzhaori)";
int con=stmt.executeUpdate(upd);
execute()

Beispiel:

try
{
 }
catch(SQLException sqle)
{
}
finally
{
}

Technisches Handbuch zu Java-Typen und SQL-Typen P421

PreparedStatement

PreparedStatement stmt = conn.prepareStatement("insert into test(id,name)values(?,?)");
stmt.setInt(1,id);
stmt.setString(2,name);

Hinweis: Sobald der Parameterwert einer Anweisung festgelegt ist, kann die geänderte Anweisung mehrmals ausgeführt werden, bis sie durch Aufrufen der Methode „clearParameters()“ gelöscht wird

CallableStatement (vorgespeichertes Programm) Technisches Handbuch P430

JDBC2.0-Verwendung

Der Cursor im ResultSet-Objekt bewegt sich frei nach oben und unten
Anweisung stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stmt.executeQuery("select * from test");

public Statement createStatement(int resultSetType,int resultSetConcuttency) löst eine SQLException aus

resultSetType

TYPE_FORWARD_ONLY Nur die next()-Methode kann verwendet werden.
TYPE_SCROLL_SENSITIVE kann nach oben und unten verschoben und der geänderte Wert abgerufen werden.
TYPE_SCROLL_INSENSITIVE kann sich nach oben und unten bewegen.

resultSetConcuttency

CONCUR_READ_ONLY Nur Lesen
CONCUR_UPDATABLE Das ResultSet-Objekt kann Datenbankergänzungen, -änderungen und -entfernungen durchführen

Verwenden Sie das ResultSet-Objekt direkt, um Daten zu aktualisieren

Neue Daten

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);
ResultSet uprs=stmt.executeQuery("select * from test");
uprs.moveToInsertRow();
uprs.updateInt(1,1001);
uprs.updateString(2,"许召日");
uprs.insertRow;

Daten aktualisieren

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);
ResultSet uprs=stmt.executeQuery("select * from test");
uprs.last();
uprs.updateString("name","xuzhaori");
uprs.updateRow;

Daten löschen

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);
ResultSet uprs=stmt.executeQuery("select * from test");
uprs.absolute(4);
uprs.deleteRow();

Stapelverarbeitung

con.setAutoCommit(false); 关闭自动认可模式
Statement stmt=con.createStatement();
int[] rows;
stmt.addBatch("insert into test values(1001,xuzhaori)");
stmt.addBatch("insert into test values(1002,xuyalin)");
rows=stmt.executeBatch();
con.commit(); 没有任何错误,执行批处理stmt.executeBatch();

JNDI-Datenquelle und Verbindungspool

Technisches Handbuch für JDBC-Datenquelleneinstellungen von Tomcat P439

Connection Pool Tool-Proxool Var 0.8.3 Technisches Handbuch P446

web.xml festlegen

<&#63;xml version="1.0" encoding="ISO-8859-1"&#63;>
<!--<&#63;xml version="1.0" encoding="GB2312"&#63;>-->
 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
….
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
 
<init-param>
<param-name>propertyFile</param-name>
<param-value>WEB-INF/classes/Proxool.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
后端统计端口添加下列
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
 
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/Admin</url-pattern>
</servlet-mapping>
 
….
 
</web-app>

Proxool.properties konfigurieren

jdbc-0.proxool.alias=JSPBook
jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/sample_db&#63;user=root&password=browser&useUnicode=true&characterEncoding=UTF-8
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.prototype-count=4
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
jdbc-0.proxool.verbose=true
jdbc-0.proxool.statistics=10s,1m,1d  后端统计接口添加此行
jdbc-0.proxool.statistics-log-level=DEBUG


Proxool-Verbindungspool verwenden

Connection con = DriverManager.getConnection("proxool.JSPBook");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String query = "SELECT * FROM employee";
ResultSet rs = stmt.executeQuery(query);


Vielen Dank für das Lesen dieses Artikels. Ich hoffe, er kann allen helfen. Vielen Dank für Ihre Unterstützung dieser Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn