¿Qué es 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:
- --------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- Motor = innoDB Auto_Increment = 6 Charset predeterminado = utf8;-- ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- lugar '); insertar en valores de `usuarios (' 4 ',' lu ',' 28 ',' algún lugar '); insertar en valores de` usuarios (' 5 ',' xiaoxun ',' 27 ',' nanjing ');Cree un archivo de configuración MyBatis XML Configuration.xml en el directorio SRC
<? xml versión = "1.0" encoding = "utf-8"?> <! DocType Configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <Cuenture> alias="User" type="com.mybatis.test.User"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" valor = "jdbc: mysql: //127.0.0.1: 3306/mybatis"/> <propiedad name = "username" value = "root"/> <propiedad name = "contraseña" value = "admin"/> </dataSource> </entorno> </entornos> <!-mybatis mapper mape 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 de búsqueda 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 iD =#{Id} </deleteroEl 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; nombre de usuario de cadena privada; privado int userage; String private String UserAddress; public int getId () {return id; } public void setid (int id) {this.id = id; } public String getUsername () {return UserName; } public void setUsername (String UserName) {this.Username = username; } public int getUserage () {return userage; } public void setUserage (int userage) {this.userage = userage; } public String getUserAddress () {return userAddress; } public void setUserAddress (string userAddress) {this.userAddress = userAddress; } @Override public String toString () {return this.username+""+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); Adduser public void (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; prueba de clase pública {private sqlsessionFactory sqlsessionFactory; Lector de lector estático privado; static {try {reader = recursos.getResourCeaseReader ("Configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (Reader); } catch (Exception e) {E.PrintStackTrace (); }} public static sqlSessionFactory getSession () {return sqlSessionFactory; } public void getUserById (int userId) {sqlsession session = sqlsessionFactory.opensession (); Pruebe {iuserOperation userOperation = session .getMapper (iuserOperation.class); Usuario usuario = UserOperation.SelectUserById (UserId); if (user! = null) {system.out.println (user.getid () + ":" + user.getusername () + ":" + user.getuserAddress ()); }} finalmente {session.close (); }} public void getUserList (String UserName) {sqlsession session = sqlSessionFactory.opensession (); Pruebe {iuserOperation userOperation = session .getMapper (iuserOperation.class); Lista <serem> users = UserOperation.SelectUsersByName (nombre de usuario); for (usuario de usuario: usuarios) {system.out.println (user.getid () + ":" + user.getusername () + ":" + user.getuserAddress ()); }} finalmente {session.close (); }} / ** * Commit después de la adición * / public void addUser () {user user = new User (); user.setUserAddress ("lugar"); user.setUsername ("test_add"); user.setUserage (30); Sqlsession session = sqlSessionFactory.opensession (); Pruebe {iuserOperation userOperation = session .getMapper (iuserOperation.class); UserOperation.adduser (usuario); session.commit (); System.out.println ("Agregar ID de usuario:" + user.getID ()); } finalmente {session.close (); }} / ** * commit * / public void updateUser () {sqlsession session = sqlSessionFactory.opensession (); Pruebe {iuserOperation userOperation = session .getMapper (iuserOperation.class); Usuario usuario = UserOperation.SelectUserById (1); if (user! = null) {user.setUserAddress ("un nuevo lugar"); UserOperation.UpdateUser (usuario); session.commit (); }} finalmente {session.close (); }} /*** Commit después de la eliminación. * * @param id */ public void DeleteUser (int id) {sqlsession session = sqlSessionFactory.opensession (); Pruebe {iuserOperation userOperation = session .getMapper (iuserOperation.class); UserOperation.DeleteUser (ID); session.commit (); } finalmente {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 (Exception e) {System.out.println (e.getMessage ()); }}} Descarga del código: mybaitssimpledemo_jb51.rar
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.