Je n'ai pas appris de nouvelles choses depuis un moment. Après le 1er octobre, je pense que plus je fais les choses, mieux c'est. Je ne dirai pas beaucoup de bêtises. Parlons d'utiliser MyBatis pour vous connecter à la base de données MySQL. Dans l'article précédent, j'ai écrit des tests JDBC, et mes tables de base de données sont toujours les mêmes. Étant donné que la plupart des informations que j'ai recherchées en ligne sont Eclipse, puisque je suis habitué aux IDE, je suis venu ici avec beaucoup de problèmes.
Jetez un œil à la structure d'ingénierie
Permettez-moi d'abord de parler du code Java. DAO est l'interface de requête, le modèle est le XML de Ben et l'instruction de requête correspondante. Je pense que c'est un peu mauvais. User.xml est meilleur dans DAO. Vous le saurez après l'avoir compris. Depuis que je suis débutant, je ne comprends pas beaucoup de choses. Une définition raisonnable du package sera donnée plus tard.
J'ai utilisé le test pour ça
Parlons des ressources, la configuration est un fichier de configuration, Log4j est une impression de journal et d'autres ne peuvent pas être utilisées pour le moment.
Jetons un coup d'œil au code, je vous le donnerai dans l'ordre de la création de fichiers.
Tout d'abord, il doit y avoir un objet, qui est construit en fonction de la base de données
user.java
Package com.fanyafeng.model; Importer Java.util.date; / *** Auteur: FanyaFeng * Données: 16/10/11 14: 56 * Courriel: [email protected]*/public class utilisateur {private int id; private String username; private date anniversaire lind nat id;} public String getUserName () {return username;} public void sesersername (String username) {this.userName = username;} public date getbirthday () {return anniversaire;} public void SetBirthday (date anniversaire) {this.birthday = anniversaire;} String public String Getsex () {return sex;} public Void SetSex ( {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '/'' +", birthday=" + birthday +", sex='" + sex + '/'' + ", adresse = '" + adresse +' / '' + '}';}}
iuserdao.java
Package com.fanyafeng.dao; Import com.fanyafeng.model.user; import java.util.list; / *** Auteur: FanyaFeng * Données: 16/10/11 14: 55 * Courriel: [email protected]*/public Interface Iuserdao {public list <user> queryuserbyname (Nom de strict); public SleectuserId (INTR> add (); public void del (int id); public void alter (int id);}
user.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappen public "- // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <! namespace = "com.fanyafeng.dao.iuserdao"> <select id = "selectUserByid" ParameterType = "int" resultType = "com.fanyafeng.model.user"> SELECT * From User Where Id = # {id} </ select> <! - '% $ {value}' signifie que le style des chaînes SQL peut être utilisé, qui peut provoquer SQL, qui signifie que le style de SQL Injection -> <select id = "QueryUserByName" ParameterType = "String" resultType = "com.fanyafeng.model.user"> Sélectionner * à partir de l'utilisateur où le nom d'utilisateur comme # {name} </lect> <! - Insérez dans l'utilisateur (id, nom d'utilisateur, Sex, Adresse) (Null, "Chen Xiaoran", "féminin", "Classique du Collège") ParameterType = "com.fanyafeng.model.user"> Insérer dans l'utilisateur (id, nom d'utilisateur, anniversaire, sexe, adresse) VALEURS (# {id}, # {nom d'utilisateur}, # {anniversaire}, # {sexe}, # {adresse}) </sert> </ Maket>usertest.java
Package com.fanyafeng.test; import com.fanyafeng.model.user; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.Session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactory; org.apache.ibatis.session.sqlSessionFactoryBuilder; import java.io.ioexception; import java.io.reader; import java.util.date; import java.util.list; / *** auteur: fanyafeng *: 16/10/11 14: 58 * Courriel: [email protected]*/public SQLSessionFactory SqlSessionFactory; lecteur de lecteur statique privé; statique {try {Reader = Resources.getResourCeasReader ("Configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (Reader);} Catch (ioException e) {E.PrintStackTrace ();} Main (String [] args) {sqlSession sqlSession = sqlSessionFactory.OpenSession (); try {// utilisateur utilisateur = (utilisateur) SqlSession.Selectone ("com.fanyafeng.dao.iuseserdao.selectUserByid", 2); // system.out.println (user.getAddress () + user.GetSex (). user.getBirThday ()); // System.out.println (user.getId () + user.getUsername ()); //// list <serv> userList = sqlSession.SelectList ("com.fanyafeng.dao.iuserdao.queryUserByName", "% li ning%"); pour (int i = 0; i <userList.size (); i ++) {System.out.println (userList.get (i) .toString ());} user user = new User (); user.setid (100); user.setBirthday (new Date ()); user.seSUSERNAME ("li ning"); user.setsex ("féminin"); user.setadss ("home"); squat "); int isadd = sqlSession.insert (" com.fanyafeng.dao.iuserdao.add ", utilisateur); sqlSession.Commit (); // n'oubliez pas} enfin {sqlSession.close ();}}}
configuration.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype ConfigurationPublic "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3config.dtd"> <configuration> <! Ici -> <! - <tycias alias = "user" type = "com.fanyafeng.model.user" /> -> <! - </pactaliases> -> <! - </pactaliases> -> <! - Configuration des environnements après intégration avec le printemp Type = "JDBC" /> <! - Database Connection Pool -> <dataSource type = "Poolled"> <propriété name = "Driver" value = "com.mysql.jdbc.driver" /> <propriété name = "url" value = "JDBC: mysql: // localhost: 3306 / mybatis? value = "root" /> <propriété name = "mot de passe" value = "" // </ dataSource> </ Environment> </ Environments> <mappers> <mapper ressource = "com / fanyafeng / modèle / user.xml" // </mappers> </figionfing>
Pour LOG4J, veuillez l'ajouter en fonction de vos passe-temps. Les commentaires dans le code sont écrits en détail, donc je n'entrerai pas dans les détails. Il y a un endroit ici qui me fait me sentir très frustré. J'ai demandé à un grand maître de savoir ce qui s'est passé. Il y a un répertoire cible dans la capture d'écran. Il s'agit de l'emplacement de stockage des fichiers compilés. Cependant, la question est de savoir où le fichier Java sera compilé et placé. Cependant, le fichier XML non-ressource n'a pas été mis en place et une exception a été expulsée. J'ai vérifié beaucoup d'informations et répondu à la question. Ensuite, je l'ai résolu comme ceci et j'ai regardé le fichier pom.xml. Après l'avoir changé, j'ai ajouté la balise de construction.
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <ModelVersion> 4.0.0 </ ModelVersion> <ProupID> com.fanyafeng </rom grouped> < ArfactId> MyBatisdemo </ ArfactId> <Packaging> War </ Packaging> <DERSE> 1.0-SNAPSHOT </ Version> <name> Mybatisdemo Maven Webapp </name> <url> http://maven.apache.org </url> <uild> <inalName> MyBatisDemo </ finalName> <Desources> <Resource> <Araitory> SRC / MAI N / RESSOURCES </DRARETORY> <clustred> <clut> ** / *. XML </clure> <clut> ** / *. Propriétés </clure> </ incluse> </ Resource> <Resource> < Directory> src / main / java </ Directory> <clucluns> <clut> ** / *. xml </cluent> </cluns> </source> </ ressources> </ build> <dependces> <dependency> <proupId> junit </prouved> <lefactid> JUnit </ artifactid> </ version>. https://mvnrepository.com/artifact/mysql/mysql-connector-java -> <dependency> <proupId> mysql </proupId> <Artifactid> MySQL-Connector-Java </ Artifactid> <version> 5.1.38 </Sease> </dedency> <! - https://mvnrepository.com/artifact/org.mybatis/mybatis -> <dependency> <proupId> org.mybatis </proupId> <Artifactid> Mybatis </refactive> <version> 3.2.8 </ version> </Dedency> <! - https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -> <dependency> <proupId> org.slf4j </proupId> <ArtifActid> slf4j-log4j12 </ artifactid> <version> 1.7.21 </DERNIERDS> </Dedency> <! - https://mvnrepository.com/artifact/org.slf4j/slf4j-api -> <dedentency> <proupId> org.slf4j </proupId> <ArtifActid> SLF4J-API </ Artifactid> </ version> 1.7.21 </DERNIERDE> </DENSENCENCE> <! - https://mvnrepository.com/artifact/log4j/log4j -> <dependency> <proupId> LOG4J </rompuprid> <ArtifActid> Log4j </ artifactid> <version> 1.2.17 </ version> </ Dependency> <! -! https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -> <dependency> <proupId> org.apache.logging.log4j </proupId> <ERFACTID> LOG4J-Cor https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -> <dependency> <proupId> org.apache.logging.log4j </proupId> <Artifactid> LOG4J-API </ Artifactid> <version> 2.5 </ version> </Dedency> <! - https://mvnrepository.com/artifact/org.javassist/javassist -> <dependency> <proupId> org.javassist </proncId> <artifactId> javassist </retifactid> <version> 3.18.1-ga </ version> </Dedency> <! - https://mvnrepository.com/artifact/commons-logging/commons-logging -> <dependency> <proupId> Commons-logging </proncId> <artifactId> commons-logging </ Artifactid> <version> 1.1.1 </-version> </ Dependency> <! -> <dependency> <proupId> cglib </proncId> <ArtifActid> CGLIB </ artifactId> <DERNÉRATION> 2.2.2 </ version> </ Dependency> <! - https://mvnrepository.com/artifact/asm/asm -> <dependency> <proupId> ASM </rom grouped> <ArtefactId> ASM </ artifactId> <DERSE> 3.3.1 </ version> </dependency> </Dependces> </rands>
Cela suffit, j'ai mis en œuvre la recherche et l'ajout ici, et d'autres choses sont étudiées.
Ce qui précède est la connexion IntelliJ Mybatis à la base de données MySQL introduite par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!