Introducción a 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 busca conjuntos de resultados. MyBatis puede usar XML o anotaciones simples para la configuración y el mapeo original para mapear interfaces y Pojos de Java (objetos Java Old Old) en los registros en la base de datos.
Descarga de mybatis: https://github.com/mybatis/mybatis-3/releases
Instancia mybatis
Operación crud en una tabla de usuario:
Tabla de usuario:
---------------------------------- Estructura de la tabla para `usuarios`-- -------------------------------- Tabla de caída Si existe` User`; Crear tabla `user` (` id` int (11) no nulo a auto_incement, `username` varchar (50) predeterminado,` userage` int (11) predeterminado, `useraddress` varchar 'nula predeterminado, nulo predeterminado) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', 'summer', '30', 'shanghai');INSERT INTO `user` VALUES ('2', 'test2', '22', 'suzhou');INSERT INTO `user` VALUES ('3', 'test1', '29', 'algún lugar'); inserte en valores `usuarios '(' 4 ',' lu ',' 28 ',' algún lugar '); inserte en valores de` usuarios (' 5 ',' xiaoxun ',' 27 ',' nanjing '); Cree una configuración de archivo de configuración MyBatis XML.xml <? Xml versión = "1.0" encoding = "utf-8"?> < Definición de alias mybatis-> <Pypealiases> <typealias alias = "user" type = "com.mybatis.test.user"/> </typealiases> <entornos default = "desarrollo"> <entorno id = "desarrollo"> <transactionManager type = "jdbc"/> <dataSource type = "emparejado"> <nombre de propiedad = "conductor" conductor "" conductor " value = "com.mysql.jdbc.driver"/> <propiedad name = "url" value = "jdbc: mysql: //127.0.0.1: 3306/mybatis"/> <propiedad name = "username" value = "root"/> <name de propiedad = "contraseña" valor = "admin"/> </satasource> </entorno> </ambiente <aotment " Archivo, cada archivo de configuración de XML corresponde a una interfaz -> <mappers> <mapper resource = "com/mybatis/test/user.xml"/> <mappers> </figuration> Definir el archivo de configuración user.xml de los mapeadores de usuario.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"><mapper namespace="com.mybatis.test.IUserOperation"><!-- select statement--><select id="selectUserByID" parameterType="int" resultType="User">select * from `user` where user.id = #{id}</select><!-- The defined resultMap can solve the problem of inconsistent property names and database column names of the class --><!-- <resultMap type = "user" id = "userResultMap"> <id propiedad = "id" columna = "user_id" /> <resultado propiedad = "username" column = "user_username" /> <resultado propiedad = "userage" column = "user_userage" /> <resultado propiedad = "useraddress" column = "user_useraddress" /> </sul ResultMap apunta a la definida anteriormente-> <!-<select id = "selectUsersByName" parametType = "string" resultMap = "userResultMap"> select * del usuario del usuario donde user.username = #{username} </select>-> <select id = "selectUsersByName" Parametertype = "String" resulttype = "User" de usuarios de usuarios * de usuarios de usuarios de usuarios. #{Nombre de usuario} </select> <!-Declaración SQL de selección que realiza una operación de aumento. El ID y el ParameterType son los mismos que el tipo y el tipo de parámetro del método adduser en la interfaz IUSEROperation. UseGeneratedKeys establecido en "True" indica que MyBatis quiere obtener la clave primaria generada automáticamente por la base de datos; keyProperty = "id" Especifica inyectar el valor de clave primaria obtenido en la propiedad de ID del usuario -> <insertar id = "aduser" parametertype = "usuario" useGeneratedKeys = "true" keyproperty = "id"> insertar en user (useName, userAge, userAddress) valores (#{username},#{{Userage},#{#{UserAnge} id = "updateUser" parameterType = "user"> actualizar user user set username =#{username}, userage =#{userage}, userAddress =#{userAddress} Where id =#{id} </update> <elete id = "deleteuser" parametertype = "int"> Eliminar de User Where iD =#{Id} </Delet El archivo de configuración implementa la relación de mapeo entre interfaces y declaraciones SQL. SelectUsersByName usa dos métodos para implementarlo. Comentado también es una implementación. El uso de ResultMap puede definir la relación de mapeo entre el atributo y el nombre de la columna de la base de datos. ¡La propiedad es propiedad de la clase, la columna es el nombre de la columna de la tabla, o puede ser un alias para el nombre de la columna de la tabla!
Definición de clase de usuario:
paquete com.mybatis.test; usuario de clase pública {private int id; private string userName; private int userage; private string userAdDress; public int getId () {return id;} public void setid (int id) {this.id = id;} public String getUsername () {return Username;} public getUserage () {return userage;} public void setUserage (int userage) {this.userage = userage;} public String getUserAdDress () {return userAdDress;} public void setUserAddress (String userAddress) {this.UserAddress = userAddress;}@overDidepsCublic string tt ttturtring () {) {return) "+this.userage+" "+this.useraddress;}} Definición de iuseroperaton:
paquete com.mybatis.test; import java.util.list; interfaz pública iUserOperation {Public User SelectUserById (int id); Lista pública <Serement> SelectUsersByName (String UserName); public void adduser (usuario de usuario); public Void UpdateUser (usuario de usuario); public void DeleteUser (int id);} IUSEROperation corresponde a la interfaz de operación, el nombre de la función y el nombre de la ID de operación en el archivo de configuración XML de MyBatis.
Prueba de clase de prueba:
paquete com.mybatis.test; import java.io.reader; import java.util.list; import org.apache.iMe.io.resources; import org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlSessionFactoryBuilder; Public Class Test {private static sqlsessionFactory sqlSessionFactory; privado lector de lector estático; static {try {reader = recursos.getResourCease ("Configuration.xml"); sqlSessionFactory = new sqlsession (Excepción e) {E.PrintStackTrace ();}} public static sqlSessionFactory getSession () {return sqlSessionFactory;} public void getUserById (int userId) {sqlSession session = sqlSessessionFactory.Opensession (); trey {iUserOperation Userperation = session.getMapper (iuserOperation UserOperation.SelectUserById (userId); if (user! = null) {system.out.println (user.getId () + ":" + user.getUsername () + ":" + user.getUserAddress ());}} finalmente {session.close ();}} public vetUserList (String Username) {sqlsession = sqlSessionFactory.Opensession (); try {iuserOperation userOperation = session.getMapper (iuserOperation user.getUserAdDress ());}} finalmente {session.close ();}}/*** After Addirion, Commit*/public void addUser () {user user = new user (); user.setUserAddress ("lugar"); user.setUserName ("test_add"); user.setuserage (30); sqlsession session = sqlsessession (test_add "); {IuserOperation userOperation = session.getMapper (iUserOperation.class); userOperation.adduser (user); session.commit (); system.out.println ("Agregar User ID:" + User.getId ());} Finalmente {Session.Close ();}}/*** después de modificaciones, comodidad*/public void*comedia*cometida*comedia*comedia*stession ({sqle {sqle {sqly (sqlys (sqly (sqly (sqlEssion (sqlEs (sqLeS (shoSession (SqlEs (sqLeS (SQOSSETS (SQOS (SQULE) session = sqlsessionFactory.opensession (); try {iuserOperation userOperation = session.getMapper (iuserOperation.class); user user = userOperation.selectUserById (1); if (user! = null) {user.setUserAddress ("un nuevo lugar"); userOperation.updateuser (user); session.commit ();} {session.close ();}}/*** después de la deleción, commit.** @param id*/public void deleteuser (int id) {sqlsession session = sqlsessionFactory.opensession (); try {iuseroperation userOperation = session.getMappers (iuserOperation.classs); userOperation.deleteuser (id); {session.close ();}} public static void main (string [] args) {try {test test = new test (); // test.getuserByid (1); // test.getUserList ("test1"); // test.adduser (); // test.updateuser (); // test.deleteuser (6);} Catch (Exceptect (EXCESET (EXCESECT (EXCESECT (EXCESECTES) (EXCESET (EXCESECT (EXCESECT (EXCESECTECESS) {System.out.println (e.getMessage ());}}}Lo anterior es el código de ejemplo de implementación de MyBatis de adición, deleción, modificación y consulta (CRUD) presentada 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!