Heim  >  Artikel  >  Java  >  Einführung und Konfigurationsdetails von mybatis

Einführung und Konfigurationsdetails von mybatis

黄舟
黄舟Original
2017-09-02 11:14:401335Durchsuche

Dieser Artikel stellt hauptsächlich die Einführung und Konfiguration von MyBatis vor und stellt die einfache Konfiguration von MyBatis+Spring+MySql vor. Interessierte können mehr erfahren

Einführung in MyBatis

MyBatis ist ein Persistenzschicht-Framework, das SQL, gespeicherte Prozeduren und erweiterte Zuordnungen anpassen kann. MyBatis eliminiert den Großteil des JDBC-Codes, die manuelle Einstellung von Parametern und den Abruf von Ergebnismengen. MyBatis verwendet nur einfaches XML und Annotationen, um grundlegende Datentypen zu konfigurieren und zuzuordnen, Schnittstellen und POJOs Datenbankeinträgen zuzuordnen. Im Vergleich zu „One-Stop“-ORM-Lösungen wie Hibernate und Apache OJB handelt es sich bei Mybatis um eine „halbautomatisierte“ ORM-Implementierung.
Das Jar-Paket, das verwendet werden muss: mybatis-3.0.2.jar (Mybatis-Kernpaket). mybatis-spring-1.0.0.jar (Paket kombiniert mit Spring).

MyBatis+Spring+MySql einfache Konfiguration

Erstellen einer Spring-Umgebung

1. Erstellen Sie ein Maven-Webprojekt;
3. Fügen Sie die erforderlichen JAR-Pakete (Spring Framework, Mybatis-Spring, Junit) hinzu usw.);
4, die web.xml- und Spring-Konfigurationsdateien ändern
5, eine JSP-Seite und den entsprechenden Controller hinzufügen
6, testen.

Erstellen Sie eine MySQL-Datenbank

Erstellen Sie eine Datenbank zur Verwaltung der Kursauswahl von Studenten.


Tabelle: Schülertisch, Klassentisch, Lehrertisch, Kursplan, Kursauswahltabelle für Schüler.


Logische Beziehung: Jeder Schüler hat eine Klasse; jede Klasse kann nur der Klassenlehrer einer Klasse sein.


Verwenden Sie Folgendes Um eine Datenbank mit SQL zu erstellen, erstellen Sie zunächst eine Schülertabelle und fügen Sie Daten ein (mehr als 2 Elemente).


Für mehr SQL laden Sie bitte die Projektquelldatei in „resource/sql“ herunter.



/* 建立数据库 */ 
CREATE DATABASE STUDENT_MANAGER; 
USE STUDENT_MANAGER; 
 
/***** 建立student表 *****/ 
CREATE TABLE STUDENT_TBL 
( 
  STUDENT_ID     VARCHAR(255) PRIMARY KEY, 
  STUDENT_NAME    VARCHAR(10) NOT NULL, 
  STUDENT_SEX    VARCHAR(10), 
  STUDENT_BIRTHDAY  DATE, 
  CLASS_ID      VARCHAR(255) 
); 
 
/*插入**/ 
INSERT INTO STUDENT_TBL (STUDENT_ID, 
             STUDENT_NAME, 
             STUDENT_SEX, 
             STUDENT_BIRTHDAY, 
             CLASS_ID) 
 VALUES  (123456, 
      '某某某', 
      '女', 
      '1980-08-01', 
      121546 
      )
Erstellen Sie die Konfigurationsdatei mysql.properties, die für die Verbindung mit MySQL verwendet wird.



jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/student_manager?user=root&password=bjpowernode&useUnicode=true&characterEncoding=UTF-8

MyBatis-Umgebung erstellen

Jede Bestellung, jetzt The Die Reihenfolge liegt darin, dass die geschriebenen Dateien so wenig wie möglich geändert werden können.


Entitätsklasse erstellen: StudentEntity


public class StudentEntity implements Serializable { 
  private static final long serialVersionUID = 3096154202413606831L; 
  private ClassEntity classEntity; 
  private Date studentBirthday; 
  private String studentID; 
  private String studentName; 
  private String studentSex; 
   
  public ClassEntity getClassEntity() { 
    return classEntity; 
  } 
 
  public Date getStudentBirthday() { 
    return studentBirthday; 
  } 
 
  public String getStudentID() { 
    return studentID; 
  } 
 
  public String getStudentName() { 
    return studentName; 
  } 
 
  public String getStudentSex() { 
    return studentSex; 
  } 
 
  public void setClassEntity(ClassEntity classEntity) { 
    this.classEntity = classEntity; 
  } 
 
  public void setStudentBirthday(Date studentBirthday) { 
    this.studentBirthday = studentBirthday; 
  } 
 
  public void setStudentID(String studentID) { 
    this.studentID = studentID; 
  } 
 
  public void setStudentName(String studentName) { 
    this.studentName = studentName; 
  } 
 
  public void setStudentSex(String studentSex) { 
    this.studentSex = studentSex; 
  } 
}

Datenzugriffsschnittstelle erstellen

Dao-Schnittstelle entsprechend der Student-Klasse: StudentMapper.



public interface StudentMapper { 
   
  public StudentEntity getStudent(String studentID); 
   
  public StudentEntity getStudentAndClass(String studentID); 
   
  public List<StudentEntity> getStudentAll(); 
   
  public void insertStudent(StudentEntity entity); 
   
  public void deleteStudent(StudentEntity entity); 
   
  public void updateStudent(StudentEntity entity); 
}

SQL-Mapping-Anweisungsdatei erstellen

SQL-Anweisungsdatei für die Schülerklasse StudentMapper.xml


resultMap-Tag: Zuordnung von Tabellenfeldern und Attributen.


Tag auswählen: SQL abfragen.



<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="com.manager.data.StudentMapper"> 
 
  <resultMap type="StudentEntity" id="studentResultMap"> 
    <id property="studentID" column="STUDENT_ID"/> 
    <result property="studentName" column="STUDENT_NAME"/> 
    <result property="studentSex" column="STUDENT_SEX"/> 
    <result property="studentBirthday" column="STUDENT_BIRTHDAY"/> 
  </resultMap> 
   
  <!-- 查询学生,根据id --> 
  <select id="getStudent" parameterType="String" resultType="StudentEntity" resultMap="studentResultMap"> 
    <![CDATA[ 
      SELECT * from STUDENT_TBL ST 
        WHERE ST.STUDENT_ID = #{studentID} 
    ]]>  
  </select> 
   
  <!-- 查询学生列表 --> 
  <select id="getStudentAll" resultType="commanagerdatamodelStudentEntity" resultMap="studentResultMap"> 
    <![CDATA[ 
      SELECT * from STUDENT_TBL 
    ]]>  
  </select> 
   
</mapper>

MyBatis-Mapper-Konfigurationsdatei erstellen

Erstellen Sie sie in src/main/resource MyBatis Konfigurationsdatei: mybatis-config.xml.


typeAliases-Tag: Geben Sie der Klasse einen Alias. Wenn Sie die Klasse com.manager.data.model.StudentEntity verwenden, können Sie stattdessen StudentEntity verwenden.


Mappers-Tag: Laden Sie die SQL-Mapping-Anweisungsdatei der Entitätsklasse in MyBatis.


<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
  <typeAliases> 
    <typeAlias alias="StudentEntity" type="com.manager.data.model.StudentEntity"/> 
  </typeAliases> 
  <mappers> 
    <mapper resource="com/manager/data/maps/StudentMapper.xml" /> 
  </mappers> 
</configuration>

Ändern Sie die Spring-Konfigurationsdatei

Fügen Sie hauptsächlich die Bean der SqlSession-Produktionsfabrikklasse hinzu: SqlSessionFactoryBean , (im mybatis.spring-Paket). Der Speicherort der Konfigurationsdatei und die Datenquelle müssen angegeben werden.


Die Implementierungs-Bean, die der Datenzugriffsschnittstelle entspricht. Erstellt durch MapperFactoryBean. Es ist erforderlich, den vollständigen Namen der Schnittstellenklasse und einen Verweis auf die SqlSession-Factory-Bean zu implementieren.



<!-- 导入属性配置文件 --> 
<context:property-placeholder location="classpath:mysql.properties" /> 
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  <property name="driverClassName" value="${jdbc.driverClassName}" /> 
  <property name="url" value="${jdbc.url}" /> 
</bean> 
 
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
  <property name="dataSource" ref="dataSource" /> 
</bean> 
 
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
  <property name="configLocation" value="classpath:mybatis-config.xml" /> 
  <property name="dataSource" ref="dataSource" /> 
</bean> 
 
<!— mapper bean --> 
<bean id="studentMapper" class="org.mybatis.spring.MapperFactoryBean"> 
  <property name="mapperInterface" value="com.manager.data.StudentMapper" /> 
  <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
</bean>
Sie können die Mapper-Bean auch nicht definieren, sondern Annotationen verwenden:


StudentMapper-Annotation hinzufügen


@Repository 
@Transactional 
public interface StudentMapper { 
}
Entsprechend muss das Scannen zu „dispatcher-servlet.xml“ hinzugefügt werden:



<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
  <property name="annotationClass" value="org.springframework.stereotype.Repository"/> 
  <property name="basePackage" value="comlimingmanager"/> 
  <property name="sqlSessionFactory" ref="sqlSessionFactory"/> 
</bean>

StudentMapper testen

Verwenden Sie SpringMVC zum Testen, erstellen Sie einen TestController, konfigurieren Sie Tomcat und greifen Sie zum Testen auf die index.do-Seite zu:



@Controller 
public class TestController { 
 
  @Autowired 
  private StudentMapper studentMapper; 
   
  @RequestMapping(value = "index.do") 
  public void indexPage() {   
    StudentEntity entity = studentMappergetStudent("10000013"); 
    System.out.println("name:" + entity.getStudentName()); 
  }   
}
Test mit Junit:



Das obige ist der detaillierte Inhalt vonEinführung und Konfigurationsdetails von mybatis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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