mybatis入门程序开发步骤教程

    科技2025-03-14  16

    mybatis入门程序

    新建maven项目

    配置项目jdk

    pom.xml导入依赖,非maven项目则导入jar包

    <dependencies> <!-- mybatis依赖包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <!-- 数据库驱动连接包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-- log4j日志记录包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> 配置log4j文件 如果没有可以新建一个 log4j.properties log4j.rootLogger = debug,stdout,D,E log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = E://logs//mybatis//log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =E://logs//mybatis//error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n 创建数据库和表 DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` ( `empid` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(55) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `gender` int(1) DEFAULT NULL, `birthday` date DEFAULT NULL, `mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `email` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `position` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `note` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (`empid`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of employee -- ---------------------------- INSERT INTO `employee` VALUES (1, '张三', 1, '1999-10-01', '13554875022', '3265487955@qq.com', '前端工程师', NULL); INSERT INTO `employee` VALUES (2, '王五', 1, '2020-10-05', '13654458553', '123456@qq.com', '大数据工程师', '新增'); INSERT INTO `employee` VALUES (3, '李刚', 1, '2020-10-02', '12554415223', '2336525412@qq.com', 'java工程师', NULL); INSERT INTO `employee` VALUES (4, '王超', 1, '1999-06-30', '13555288510', '255561223@qq', 'python工程师', NULL); INSERT INTO `employee` VALUES (5, '李欣', 0, '2000-10-02', '13655144012', '125456585@qq.com', 'java工程师', NULL); INSERT INTO `employee` VALUES (18, '李四', 1, '2020-10-07', '1365445855', '123456@qq.com', '工程师', '新增'); SET FOREIGN_KEY_CHECKS = 1; 创建持久化类(实体类pojo) public class Employee implements Serializable { private static final long serialVersionUID = 1L; private Integer empId; private String name; private Integer gender; private Date birthday; private String mobile; private String email; private String position; private String note; public Integer getEmpId() { return empId; } public void setEmpId(Integer empId) { this.empId = empId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getGender() { return gender; } public void setGender(Integer gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } @Override public String toString() { return "Employee [empId=" + empId + ", name=" + name + ", gender=" + gender + ", birthday=" + birthday + ", mobile=" + mobile + ", email=" + email + ", position=" + position + ", note=" + note + "]"; } public Employee(String name, Integer gender, Date birthday, String mobile, String email, String position, String note) { super(); this.name = name; this.gender = gender; this.birthday = birthday; this.mobile = mobile; this.email = email; this.position = position; this.note = note; } public Employee() { super(); } } 创建mybatis映射文件(xxxmapper.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="com.zwh.mapper.EmployeeMapper"> </mapper> 映射文件中编写sql语句 <?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="com.zwh.mapper.EmployeeMapper"> <select id="selectEmployee" parameterType="Integer" resultType="com.zwh.pojo.Employee"> select * from employee where empid=#{empId} </select> </mapper> 创建mybatis核心配置文件(mybatis-config.xml) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置环境,指定默认的环境 id --> <environments default="mysql"> <!-- 配置 environment 元素定义的环境 id --> <environment id="mysql"> <!-- 事务管理器的配置,使用JDBC事务管理器 --> <transactionManager type="JDBC"></transactionManager> <!-- 数据源的配置,使用数据库连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatisdb?characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <!-- 配置映射文件mapper.xml的位置 --> <mappers> <mapper resource="com/zwh/mapper/EmployeeMapper.xml" /> </mappers> </configuration> 编写测试类 import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; public class test { @Test public void selectEmployee() throws IOException { /* 读取配置文件 */ InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); /* 根据配置文件构建SqlSessionFactory会话工厂 */ SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); /* 通过SqlSessionFactory创建SqlSession */ SqlSession sqlSession = sqlSessionFactory.openSession(); /* SqlSession执行映射文件中自定义的SQL,并返回映射结果 */ try { Employee employee = sqlSession.selectOne("com.zwh.mapper.EmployeeMapper.selectEmployee", 1); System.out.println(employee); } finally { /*关闭SqlSession*/ sqlSession.close(); } } }
    Processed: 0.009, SQL: 8