MyBatis CREATE 操作
-
CREATE 操作
要使用MyBATIS执行任何创建,读取,更新和删除(CRUD)操作,您需要创建与该表相对应的普通Java对象(POJO)类。此类描述了将“建模”数据库表行的对象。POJO类将具有执行所需操作所需的所有方法的实现。在MySQL数据库中创建STUDENT表,如下所示-mysql> CREATE TABLE details.student( -> ID int(10) NOT NULL AUTO_INCREMENT, -> NAME varchar(100) NOT NULL, -> BRANCH varchar(255) NOT NULL, -> PERCENTAGE int(3) NOT NULL, -> PHONE int(11) NOT NULL, -> EMAIL varchar(255) NOT NULL, -> PRIMARY KEY (`ID`) -> ); Query OK, 0 rows affected (0.37 sec)
-
STUDENT POJO 类
在Student.java文件中创建一个STUDENT类,如下所示:public class Student { private int id; private String name; private String branch; private int percentage; private int phone; private String email; public Student(String name, String branch, int percentage, int phone, String email) { super(); this.name = name; this.branch = branch; this.percentage = percentage; this.phone = phone; this.email = email; } }
您可以定义方法来设置表中的各个字段。下一章将说明如何获取各个字段的值。 -
Student.xml文件
要使用MyBatis定义SQL映射语句,我们将使用<insert>标记。在此标记定义中,我们将定义一个“id”。此外,“id”将在mybatisInsert.java文件中用于对数据库执行SQL INSERT查询。创建student.xml文件,如下所示-<?xml version = "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 = "Student"> <insert id = "insert" parameterType = "Student"> INSERT INTO STUDENT (NAME, BRANCH, PERCENTAGE, PHONE, EMAIL ) VALUES (#{name}, #{branch}, #{percentage}, #{phone}, #{email}); <selectKey keyProperty = "id" resultType = "int" order = "AFTER"> select last_insert_id() as id </selectKey> </insert> </mapper>
在这里,parameteType-可以根据需要采用string,int,float,double或任何类对象的值。在此示例中,我们将在调用SqlSession类的insert方法时将Student对象作为参数传递。如果数据库表使用IDENTITY,AUTO_INCREMENT或SERIAL列,或者已定义SEQUENCE/GENERATOR,则可以在<inster>语句中使用<selectKey>元素来使用或返回该数据库生成的值。 -
mybatisInsert.java文件
该文件将具有应用程序级逻辑,以将记录插入到Student表中。创建并保存mybatisInsert.java文件,如下所示-import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class mybatisInsert { public static void main(String args[]) throws IOException{ Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); //Create a new student object Student student = new Student("Mohammad","It", 80, 984803322, "Mohammad@gmail.com" ); //Insert student data session.insert("Student.insert", student); System.out.println("record inserted successfully"); session.commit(); session.close(); } }
-
编译与执行
这是编译和运行mybatisInsert.java文件的步骤。在继续进行编译和执行之前,请确保已正确设置了PATH和CLASSPATH。- 如上所示创建Student.xml。
- 如本教程的MYBATIS-配置XML章节中所示,创建SqlMapConfig.xml 。
- 如上所示创建Student.java并进行编译。
- 如上所示创建mybatisInsert.java并进行编译。
- 执行mybatisInsert二进制文件以运行该程序。
您将得到以下结果,并且将在STUDENT表中创建一条记录。$java mybatisInsert Record Inserted Successfully
如果检查STUDENT表,它将显示以下结果-mysql> select * from student; +----+----------+--------+------------+-----------+--------------------+ | ID | NAME | BRANCH | PERCENTAGE | PHONE | EMAIL | +----+----------+--------+------------+-----------+--------------------+ | 1 | Mohammad | It | 80 | 984803322 | Mohammad@gmail.com | +----+----------+--------+------------+-----------+--------------------+ 1 row in set (0.00 sec)