[JAVA] Grundeinstellungen bis S2Dao verwendet werden kann

Ich habe nicht viele Artikel über die anfänglichen Einstellungen von S2Dao gefunden, und ich hatte ein wenig Probleme, deshalb werde ich sie in Zukunft für mich selbst aufschreiben.

Ausführungsumgebung

Tor

Die Dao-Schnittstelle mit S2Dao wird automatisch gebunden und SQL ausgeführt.

DB-Grundeinstellung

Speichern Sie die Daten in der Bilanztabelle


mysql> select * from sastrutsdb.balance;
+----+--------------+--------+---------------------+------------+
| id | name         | amount | created_at          | updated_at |
+----+--------------+--------+---------------------+------------+
|  1 |Taro Tanaka|  10000 | 2019-05-03 19:25:33 | NULL       |
|  2 |Hanako Sato|  20000 | 2019-05-03 23:48:40 | NULL       |
+----+--------------+--------+---------------------+------------+
2 rows in set (0.00 sec)

pom & dicon dateieinstellungen

POM-Dateieinstellungen

Laden Sie mysql-connector-java-8.0.16.jar und s2-dao-1.0.49.jar herunter

pom.xml


        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.16</version>
        </dependency>
        <dependency>
          <groupId>org.seasar.dao</groupId>
          <artifactId>s2-dao-tiger</artifactId>
          <version>1.0.49</version>
        </dependency>

Maven Reinigen Sie das Projekt.

* Bestätigen Sie, dass das Zielglas in WEB-INF / lib vorhanden ist Wird automatisch kopiert, indem Kopierabhängigkeiten in pom </ font> festgelegt werden

Einstellungen der Dicon-Datei

Erstellen einer Dicon-Datei zum Registrieren der Dao-Schnittstelle im Container Das enthaltene dao.dicon ist eine Dicon-Datei, die in s2-dao-1.0.49.jar vorhanden ist.

Geben Sie die Klasse der Dao-Schnittstelle an, die als Komponente in addClassPattern registriert werden soll.

MySQL.dicon (jeder Dateiname ist OK)


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
    <include path="dao.dicon"/>

    <component name="traceInterceptor" class="org.seasar.framework.aop.interceptors.TraceInterceptor"/>

    <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
      <property name="autoNaming">
        <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
      </property>
      <initMethod name="addClassPattern">
        <arg>"org.seasar.sastruts.example.dao"</arg>
        <arg>".*Dao"</arg>
      </initMethod>
    </component>

    <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
      <property name="interceptor">dao.interceptor</property>
      <initMethod name="addClassPattern">
        <arg>"org.seasar.sastruts.example.dao"</arg>
        <arg>".*Dao"</arg>
      </initMethod>
    </component>

</components>

Geben Sie die oben in app.dicon erstellte Dicon-Datei an

app.dicon


  <include path="MySQL.dicon"/>

MySQL-Einstellungen und S2Dao-Komponentenregistrierung in jdbc.dicon Benutzername und Passwort sind entsprechend eingestellt

jdbc.dicon


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
	"http://www.seasar.org/dtd/components24.dtd">
<components namespace="jdbc">
	<include path="jta.dicon"/>

    <component name="resultSetFactory" class="org.seasar.dao.pager.PagerResultSetFactoryWrapper">
      <arg>
        <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
      </arg>
      <property name="useScrollCursor">true</property>
    </component>
    <component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
      <arg>
        <component class="org.seasar.dao.pager.PagerStatementFactory"/>
      </arg>
      <property name="fetchSize">100</property>
    </component>

	<component name="xaDataSource"
		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
		<property name="driverClassName">
			"com.mysql.cj.jdbc.Driver"
		</property>
		<property name="URL">
			"jdbc:mysql://localhost:3306/sastrutsdb?characterEncoding=UTF-8&amp;characterSetResults=UTF-8"
		</property>
		<property name="user">"sa"</property>
		<property name="password">"password"</property>
	</component>

	<component name="connectionPool"
		class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
		<property name="timeout">600</property>
		<property name="maxPoolSize">10</property>
		<property name="allowLocalTx">true</property>
		<destroyMethod name="close"/>
	</component>

	<component name="DataSource"
		class="org.seasar.extension.dbcp.impl.DataSourceImpl"
	/>

</components>

Damit sind die Einstellungen abgeschlossen. Der Rest wird umgesetzt.

Implementierung

Entitätserstellung

Balance


@Entity
@Table(name = "sample")
public class Balance {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public int id;

	@Column(name = "amount", nullable = false, unique = false)
	public long amount;
	
	@Column(name = "name", nullable = false, unique = false)
	public String name;

	@Column(name = "created_at", nullable = false, unique = false)
	@Temporal(TemporalType.DATE)
	public Date createdAt;

	@Column(name = "updated_at", nullable = true, unique = false)
	@Temporal(TemporalType.DATE)
	public Date updatedAt;

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("id:").append(id);
		sb.append("name:").append(name);
		sb.append("created_ad:").append(createdAt);
		sb.append("updated_ad:").append(updatedAt);
		return sb.toString();
	}
}

Aktionserstellung

BalanceAction


public class BalanceAction {

	@Binding
	BalanceService balanceService;

	@Execute(validator=false)
	public String index() {
		List<Balance> balanceList = balanceService.findAll();
		System.out.println("BALANCE_SIZE:" + balanceList.size());
		StringBuilder responseText = new StringBuilder();

		for (Balance balance : balanceList) {
			responseText.append(balance.toString() + "\r\n");
		}
		ResponseUtil.write(responseText.toString(), "text/html", "UTF-8");
		return null;
	}
}

Serviceerstellung

Hier Dao-Datei binden

BalanceService


public class BalanceService {

	@Binding
	BalanceDao balanceDao;

	public List<Balance> findAll() {
		return balanceDao.findAll();
	}
}

Dao-Schnittstelle erstellen

BalanceDao


@S2Dao(bean = Balance.class)
public interface BalanceDao {
	public List<Balance> findAll();
}

Lauf

$ curl "localhost:8080/sastruts/balance/"
id:1name:Taro Tanaka erstellt_ad:2019-05-03 19:25:33.0updated_ad:null
id:2name:Hanako Sato erstellt_ad:2019-05-03 23:48:40.0updated_ad:null

Ich konnte die Daten sicher abrufen.

Referenz

Einführung in Seasar2 S2Dao S2Dao-Referenz

Recommended Posts

Grundeinstellungen bis S2Dao verwendet werden kann
Bis Rubin in Fenstern verwendet werden kann ...
EC2 Grundeinstellungen
Organisieren Sie Methoden, die mit StringUtils verwendet werden können
Scala String kann nicht nur für java.lang.String-Methoden verwendet werden
Über die Sache, dass hidden_field wahnsinnig benutzt werden kann
Praktische Tastenkombinationen für Eclipse
Erstellen Sie ein Seitensteuerelement, das mit RecyclerView verwendet werden kann
Firebase-Realtime-Datenbank für Android, die mit Kopie verwendet werden kann
[Frage] Kann nullif in der Zählfunktion in JPQL verwendet werden?
Gibt an, ob Optionen aufgrund unterschiedlicher Java-Versionen verwendet werden können