Mybatis流程
Mybatis
-
善用官方文档
-
用Maven创建项目,导入依赖
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency> -
写接口BlogMapper,写类Blog,配置mysql、junit、log4j等
-
log4j有一个配置文件,提供日志功能,执行步骤
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n -
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。构建SqlsessionFactory(在测试类中编写)
String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); -
配置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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/run2?useSSL=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="ssss1998"/> </dataSource> </environment> </environments> <mappers> <mapper resource="dao/Mapper.xml"/> </mappers> </configuration> -
写相应的映射项,例子(类Student、接口Studentdao)
<?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.shaon.Studentdao"> <select id="selectallstudent" resultType="com.shaon.Student"> select * from student </select> </mapper> -
从SqlsessionFactory获取Sqlsession(在测试类中编写)
try (SqlSession session = sqlSessionFactory.openSession()) { BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(101); } -
使用resultMap要注意:
Colum的值要和数据库中的列名一样!!!!(如果不一样就查询不到),当映射的类的属性名和数据库的列名不一致时这么做。这个操作用来解决类中的属性名和数据库中的列名不一致的情况<resultMap id="studentResultMap" type="com.shaon.Student"> <id property="id" column="ID"/> <!--""里面的值不能留空格 --> <result property="student_name" column="name"/> <result property="dept" column="dept_name"/> <result property="cred" column="tot_cred"/> <result property="birth" column="birthday"/> </resultMap>
<select id="selectUsers" resultType="User"> select user_id as "id", user_name as "userName", hashed_password as "hashedPassword" from some_table where id = #{id} </select> -

浙公网安备 33010602011771号