Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

WBOY
Freigeben: 2016-11-30 23:59:41
Original
1025 Leute haben es durchsucht

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:

::

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()
Nach dem Login kopieren

Beispiel:

try
{
 }
catch(SQLException sqle)
{
}
finally
{
}
Nach dem Login kopieren

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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();
Nach dem Login kopieren

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();
Nach dem Login kopieren

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>
Nach dem Login kopieren

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


Nach dem Login kopieren

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);


Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!