Introducción a mybatis
El predecesor de MyBatis era Ibatis, que originalmente era un proyecto de código abierto de Apache. En 2010, este proyecto se trasladó de Apache Software Foundation a Google Code y pasó a llamarse MyBatis.
MyBatis es un excelente marco de capa de persistencia que admite consultas SQL simples, procedimientos almacenados y mapeo avanzado. MyBatis elimina la configuración manual de casi todos los códigos y parámetros JDBC y la recuperación de conjuntos de resultados. MyBatis utiliza XML o anotaciones simples para la configuración y mapeo original, mapeo de interfaces y POJOS de Java (planifica los objetos Java antiguos, objetos Java ordinarios) en registros en la base de datos.
Los siguientes pasos se introducen en la construcción del entorno mybatis.
1) Presente el paquete MyBatis-3.4.1.JAR en el proyecto y luego presente el paquete de base de datos (MySQL, MSSQL ..).
2) Cree un nuevo archivo de configuración Conf.xml en SRC
<? xml versión = "1.0" encoding = "utf-8"?> < Resource = "JDBC.Properties" /> <!-Configurar el entorno operativo myBatis-> <entornos default = "desarrollo"> <entorno id = "desarrollo"> <!-type = "jdbc" representa el uso de la confirmación de JDBC y la reversión para administrar las transacciones-> <transaccionManger type = "jdbc" /> <!-mybatis proporciona tres tipos de origen, tipos de origen, tipos de origen, tipos de origen, tipos de origen, de modificación de las transacciones-> <TransactionManger type = "JDBC" Agrupado, sin energía, JNDI-> <!-Agrupado indica soporte para el grupo de conexión de fuente de datos de JDBC-> <!-No indica no es compatible con el grupo de conexión de la fuente de datos-> <!-JNDI indica soporte para el grupo de conexión de la fuente de datos externa-> <DataSource type = "agrupado"> <nombre de propiedad = "valor" valor = "$}" />> <nombre de propiedad = "Url" valor " /> <Property Name = "UserName" Value = "$ {UserName}"/> <Property Name = "Password" Value = "$ {Password}"/> </shasource> </entorno> </boss> <mappers> <mapper resource = "usermapper.xml"/> </mappers> </formuation>Aquí, la información de almacenamiento de la base de datos se almacena a través de archivos de configuración externos, por lo que se agrega información de almacenamiento de la base de datos JDBC.Properties.
controlador = com.microsoft.sqlserver.jdbc.sqlserverdriverurl = jdbc: sqlserver: //127.0.0.1; databaseName = testUsername = sapassword = 123456
3) Cree un archivo de asignación usermapper.xml
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapperspace = "hww.ser.ser.ser"! Usuarios-> <select id = "QUERYUSERS" resultType = "hw.com.pojo.user"> select * de ms_user </select> <selectid = "QueryUserByid" resultType = "hw.com.pojo.user" parametertype = "int"> select * de ms_user where id =#{id} </select> </mApper>(Cabe señalar aquí que el atributo del espacio de nombres es, porque esta instancia se asigna a través de interfaces, por lo que el atributo del espacio de nombres debe escribirse como la ruta de la interfaz) Figura adjunta:
4) Crear una clase de interfaz de mapeo
paquete hw.com.ser; import java.util.list; import hw.com.pojo.user; interfaz pública iuser {Lista pública <serer> QUIERYUSERS (); Usuario público QueryUserById (int id);}5) Crear una Factory SQLSession
paquete hw.com.util; import java.io.ioException; import java.io.inputstream; import java.io.inputstreamreader; import java.io.reader; import java.util.properties; import org.apache.ibatis.io.resources; import org.apache.session.sqlsession; org.apache.ibatis.session.sqlsessionFactory; import org.apache.ibatis.session.sqlsessionFactoryBuilder; clase pública sqlsessionFactoryUtil {private sqlsessionfactory sqlsessionfactory = null; Clase final estática privada class_lock = sqlSessionFactoryUtil.class; privado sqlSessionFactoryUtil () {} public static sqlsessionFactory initsqlSessionFactory () {string recursce = "conf.xml"; InputStream InputStream = null; intente {inputStream = Resources.getResourCeasstream (recurso); } catch (ioException e) {E.PrintStackTrace (); } sincronizado (class_lock) {if (sqlSessionFactory == null) {sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (InputStream); }} return sqlSessionFactory; } public static sqlSession opensqlSession () {if (sqlSessionFactory == null) {initsqlSessionFactory (); } return sqlSessionFactory.opensession (); }}6) Crear un pojo
paquete hw.com.pojo; import java.util.date; Usuario de clase pública {ID de cadena privada; nombre de usuario de cadena privada; Cadena privada userpwd; Private int DePtmentid; Cadena privada UserTruename; correo electrónico de cadena privada; Private int LearnCenterid; fecha privada creada; Fecha privada LastModifyDate; Private int userstatus; Public User () {super (); // TODO STUB Generado automático} public String getId () {return id; } public void setid (string id) {id = id; } public String getUsername () {return UserName; } public void setUsername (String UserName) {username = username; } public String getUserPwd () {return userPwd; } public void setUSerPWD (String UserPwd) {userPwd = userPwd; } public int getDeptmentId () {return DeptmentId; } public void setDeptmentId (int dependmentId) {departamento de dependencia = dependmentId; } public String getUserTrUeName () {return userTrUeName; } public void setUserTrUeName (String UserTrUeName) {userTrUeName = userTrUeName; } public String getEmail () {return email; } public void setEmail (correo electrónico de cadena) {correo electrónico = correo electrónico; } public int getLearnCenterID () {return LearnCenterID; } public void setLearnCenterid (int aprendizaje de la edad) {LearnCenterID = LearnCenterID; } fecha pública GetCreateDate () {return creatate; } public void setCreateDate (fecha creative) {creative = createate; } fecha pública getLastModifyDate () {return LastModifyDate; } public void setLastModifyDate (fecha lastModifyDate) {lastModifyDate = lastModifyDate; } public int getUserStatus () {return UserStatus; } public void setUserStatus (int usserstatus) {userstatus = userStatus; } @Override public string toString () {return "user [id =" + id + ", username =" + username + ", userpwd =" + userpwd + ", depptmentId =" + depptmentId + ", usertruename =" + userTrUenEnEnMe + ", correo electrónico =" + email + ", LearnerId =" + LearnCenterIdRIDADID + ", CreatateATATATATEATATATATATATATATATETATATE. LastModifyDate = " + lastModifyDate +", userStatus = " + userstatus +"] "; }}7) Haga la prueba bajo el método principal
paquete hw.com.day1.main; import java.util.list; import org.apache.ibatis.session.sqlsession; import hw.com.pojo.user; import hw.com.ser.iuser; import hw.com.util.sqlsessionSession; sqlsession = nulo; intente {sqlsession = sqlSessionFactoryUtil.OpensqlSession (); Iuser iuser = sqlsession.getMapper (iuser.class); Lista <serem> users = iuser.queryUsers (); if (users.size ()> 0) {for (usuario de usuario: usuarios) {system.out.println (user.toString ()); }}} Catch (Exception e) {E.PrintStackTrace (); }}}