Introducción a MyBatis:
MyBatis es 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. Migró a Github en noviembre de 2013.
MyBatis es un excelente marco de capa de persistencia que admite SQL personalizado, procedimientos almacenados y mapeo avanzado. MyBatis evita casi todo el código JDBC y la configuración manual de los parámetros y la obtención de conjuntos de resultados. MyBatis puede usar XML o anotaciones simples para configurar y asignar información nativa, mapear interfaces y Java Pojos (objetos Java antiguos) en los registros en la base de datos.
1. La función de mybatis:
En pocas palabras, MyBatis implementa la capa DAO, que configura SQL a través de archivos XML y mapas a PO.
2. Paquetes de cotización que deben estar preparados
mybatis-3.2.8.jar: se usa el marco mybatis
ojdbc6.jar: conexión de base de datos
Configuración del entorno mybatis (aquí hay una configuración separada de mybatis):
Primero: Descargar e importar el paquete de mybatis jar
La dirección de descarga de v3.4.5 es:
http://xiazai.vevb.com/201712/yuanma/mybatis-3.4.5.rar
Si no desea usar la versión 3.4.5, pero si olvida la dirección, podemos buscar directamente en el sitio web oficial de Github.com: MyBatis
Los resultados de búsqueda se muestran en la figura:
Haga clic en Descargar lo último en este momento y luego seleccione la versión que desea descargar.
Descomprima el paquete comprimido descargado e importe todos los mybatis-3.4.5.5 y el frasco en la carpeta lib en eclipse. Por supuesto, en este momento, también debe importar el paquete JAR del controlador MySQL en MySQL-Connector-Java-5.1.44.Jar.
Debido a que no usamos Maven aquí, la siguiente configuración no es necesaria, porque hemos importado manualmente todos los frascos:
<Spendency> <ProupId> org.mybatis </groupid> <artifactid> mybatis </artifactid> <versión> 3.4.5 </versión> </dependencia>
2. Escribir archivos de configuración
Cree una carpeta de origen en su propio proyecto, almacene su propio documento de configuración y cree sqlmappersconfig.xml y copie la siguiente configuración (la configuración oficial proporcionada por el funcionario, cambie la configuración oficial a su propia):
<? xml versión = "1.0" encoding = "utf-8"?> <! DocType ConfigurationPublic "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtdd"> <Configuration> <mirenments predeterminado = "Desarrollo =" Desarrollo ">" Desarrollo " <transaccionManager type = "jdbc"/> <dataSource type = "agrupado"> <propiedad name = "controlador" valor = "$ {controlador}"/> <propiedad name = "url" value = "$ {url}"/> <propiedad name = "username" value = "$ {username}"/> <name de propiedad = "Value" Value = "$ {contraseña {Cassions"/"Value" Value = "$ {UserName}"/> <Nombre de propiedad = "Value" Value = "$ {Password {Cassword}/" </entorno> </bossments> <mappers> <mapper resource = "org/mybatis/ejemplo/blogmapper.xml"/> </smpers> </figuration>La configuración en sqlconnect.properties es la siguiente:
SqlDriver: com.mysql.jbdc.driversqlurl: mysql: jbdc: //172.20.60.2/spectergk? UseUnicode = true y caracteres = utf8sqlusername: testSqluserPwd: 111111
OK hasta ahora, hemos completado la configuración básica de la configuración que debe configurarse, pero esta es solo la configuración de la configuración, el código de prueba:
public void functionTest () {//system.out.println("Start myBatis "); InputStream InputStream = null; Pruebe {<br datafiltered = "filtrado"> inputStream = recursos.getResourceasStream ("sqlmapconfig.xml"); } Catch (ioException e) {// tODO Auto Generated BLOCK E.PrintStackTRace (); } /** Crear fábrica* / sqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (InputStream); / * * Abrir ssion */ sqlSession sqlsession = sqlSessionFactory.opensession (); System.out.println (SQLSession); sqlsession.close (); intente {inputStream.Close (); } Catch (ioException e) {// tODO Auto Generated BLOCK E.PrintStackTRace (); }}En este momento, la impresión es un valor que demuestra que la hemos configurado con éxito, y podemos configurar el mapeador para el resto.
Segundo: la creación y el uso de mapeadores, porque MyBatis Mapper puede usar proxy dinámico, y usamos directamente el proxy dinámico aquí:
Crear en el paquete POJO:
User.java
Crear en el paquete Mappers:
Usermapper.java
Crear en el mismo directorio que sqlmappersconfig.xml:
User.xml
Y configure el siguiente código en sqlmappersconfig.xml:
; Resource = "User.xml"/> </mappers>
Implemente adición simple, eliminación, modificación y búsqueda de la base de datos. La implementación específica es la siguiente:
User.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.dtdd">) Para implementar proxy dinámico-> <mapper namespace = "com.spectergk.mybatis.mappers.usermapper"> <!-El valor de retorno configurado aquí es el usuario Esto se debe a que su nombre se ha configurado en sqlmappersconfig.xml-> <!-consulta el valor de retorno del usuario de acuerdo con la identificación utilizada. The value passed by User is parameterType --> <select id="selectUserById" resultType="User" parameterType="String"> select * from user where uid = #{v} </select> <!-- Fuzzy query based on the user's user name-> <select id="selectUsersbyUserName" resultType="User" parameterType="String"> select * from user where realname like "%"#{v} "%"; </select> <!-Insertar datos en la base de datos-> <insert id = "insertoneUser" parametType = "user"> Insertar en user (uid, username, realName, mobile, mainpid, sex) valores (#{uid},#{username},#{realNName},#{mobile},#{mainpid},#},#{sexo}; </sert> <!-el UID generado automáticamente que inserta datos y devuelve-> <insertar id = "insertoneusergetID" parametertype = "user"> <selectKey keyproperty = "uid" keycolumn = "uid" dentType = "string" ordenar = "después"> seleccionar last_insert_id () </secteker> Insertar en user (Username, RealName, Mobile, Mainpid, Mainpid, móvil) valores (#{username},#{RealName},#{mobile},#{mainpid},#{sex}); </sert> <!-Insertar en el formulario de lista-> <insertar id = "inSetUsers"> Insertar en el usuario (uid, nombre de usuario, realName, mobile, mainpid, sexo) valores <foreach colección = "list" item = "item" separator = ","> (#{item.uid},#{item.username},#{item.realname},#{item.mobile},#{item.mainpid},#{item.sex}) </ foreach> </insert> <!-insertar como una array-> <sert id = "insetuserray"> user(uid,username,realname,mobile,mainpid,sex) values <foreach collection="array" item="item" separator=","> (#{item.uid},#{item.username},#{item.realname},#{item.mobile},#{item.mainpid},#{item.sex}) </foreach> </sert> <!-Update User-> <update id = "updateUser" parametertype = "user"> Update user set username = #{username} where uid = #{uid} </update> <!-Eliminar usuario-> <deletete id = "deleteeUser" parametTerType = "string"> delete de usuar id = "DeletemoreUsers"> Eliminar del usuario donde UID en (<foreach Collection = "list" item = "item" separator = ","> #{item} </ foreach>) </elete> </ mapper>Debido a que se está cargando dinámicamente, simplemente escriba la interfaz aquí:
paquete com.specttergk.mybatis.mappers; import java.util.list; import com.specttergk.mybatis.pojo.user; interfaz pública usermapper { / * * consulta basada en ID de usuario * / usuario público selectUserByid (identificación de cadena); / * * Consulta difusa basada en el nombre de usuario */ lista pública <serem> selectUsersByUserName (String UserName); /** Insertar un usuario*/ public void InsertoneUser (usuario de usuario); / * * Inserte un usuario y devuelva la ID del usuario insertado */ public void InsertoneUsergetID (usuario de usuario); /** Insertar múltiples usuarios*/ public void Insertusers (Lista <serve> usuarios); / * * Insertar múltiples usuarios para transmitir matriz */ public void InsertusersArray (usuario [] usuarios); /** UpdateUser Update*/ public void UpdateUser (usuario de usuario); / * * Eliminar uno */ public void DeleteoneUser (String uid); / * * DeletemoreUsers Eliminar múltiples */ public void DeletemoreUsers (List <String> uids);}Debido al código de prueba, solo el código de prueba difuso se escribe aquí:
// consulta public void fuzzySearch () {System.out.println ("Iniciar myBatis"); InputStream InputStream = null; Pruebe {inputStream = Resources.getResourceASStream ("SqlMapConfig.xml"); } Catch (ioException e) {// tODO Auto Generated BLOCK E.PrintStackTRace (); } /** Crear fábrica* / this.sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (InputStream); / * * Abrir ssion */ sqlSession sqlsession = this.sqlSessionFactory.opensession (); System.out.println (SQLSession); Usermapper usermapper = sqlsession.getMapper (usermapper.class); Lista <serem> users = usermapper.SelectUsersByUserName ("liu"); for (usuario de usuario: usuarios) {system.out.println (usuario); } sqlsession.close (); }Resumir
Lo anterior es el código de ejemplo para la construcción y uso del entorno mybatis introducido por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!