Mybatis入门
1、创建测试表
2、创建maven项目
3、修改pom文件 引入依赖 mybatis mysql驱动 测试代码 junit<dependencies> <dependency> <groupId>junitgroupId> <artifactId>junitartifactId> <version>4.11version> <scope>testscope> dependency> <dependency> <groupId>org.mybatisgroupId> <artifactId>mybatisartifactId> <version>3.5.1version> dependency> <dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <version>5.1.49version> dependency> dependencies> <build> <resources> <resource> <directory>src/main/javadirectory> <includes> <include>**/*.propertiesinclude> <include>**/*.xmlinclude> includes> <filtering>falsefiltering> resource> resources> <plugins> <plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-compiler-pluginartifactId> <version>3.1version> <configuration> <source>1.8source> <target>1.8target> configuration> plugin> plugins> build>pom文件
4、创建实体类 student 定义属性
package com.pojo; /** * @author lbon * @create 2022-04-13 21:49 */ public class Student { private Integer id; private String name; private String email; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", email='" + email + '\'' + ", age=" + age + '}'; } }student类
5、创建Dao接口 定义操作数据库方法
package com.dao; import com.pojo.Student; import org.apache.ibatis.annotations.Param; import java.util.List; /** * @author lbon * @create 2022-04-13 21:51 */ public interface StudentDao { /** * 获取学生列表 * @return */ ListDao接口 6、创建xml文件(mapper文件) 书写sql语句 mybatis推荐将sql语句和java代码相分离 mapper文件:定义和dao接口在同一目录 一个表对应一个mapper文件getStudentList(); /** * 新增学生 * @param student * @return */ Boolean insertStudent(@Param("student") Student student); }
<?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.dao.StudentDao"> <insert id="insertStudent"> insert into student values(#{id},#{name},#{email},#{age}) insert> <select id="getStudentList" resultType="com.pojo.Student"> select * from student select> mapper>mapper文件 7、创建mybatis的主配置文件(xml文件) 一个项目仅一个 放在resources下 1)定义创建连接实例的数据源对象DateSource对象 2)指定其他mapper的位置
<?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> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> settings> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?useUnicode=true&characterEncodeing=utf-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> dataSource> environment> environments> <mappers> <mapper resource="com/dao/StudentDao.xml"/> mappers> configuration>mybatis主配置文件 8、创建测试内容 main方法 或单元测试Junit
import com.pojo.Student; 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; import java.io.IOException; import java.io.InputStream; import java.util.List; /** * @author lbon * @create 2022-04-14 15:06 */ public class MyTest { @Test public void testSelectStudentList() { //调用mybatis读取学生信息 //mybatis核心类 SqlSessionFactory //定义mybatis主配置文件位置,从类路径开始的相对路径 String resource = "mybatis.xml"; try { //读取配置文件 使用mybatis中Resources类 InputStream inputStream = Resources.getResourceAsStream(resource); //创建SqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); //指定要执行的sql语句id namespace+"."+ mapper语句标签id 通过sqlSession方法获取sql语句 List测试方法objects = sqlSession.selectList("com.dao.StudentDao.getStudentList", Student.class); for (Student s : objects) { System.out.println(s.toString()); } //关闭sqlSession对象 sqlSession.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }