MyBatis下载和框架
1,MyBatis特性
-
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
-
MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集
-
MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和java的POJO(Plain Old java Objects,普通的lava对象)映射成数据库中的记录
-
MyBatis 是一个半自动的ORM(Object Relation Mapping)框架
2,MyBatis下载
- 地址:https://github.com/mybatis/mybatis-3
3,MyBatis框架搭建
-
开发环境
-
创建maven工程
a>打包方式:jar
b>引入依赖
<dependencies> <!--Mybatis核心--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!--junit测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> <!--log4j日志--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
c>创建MyBatis的核心配置文件
建议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/ssm?serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--引入mybatis的映射文件--> <mappers> <mapper resource=""/> </mappers> </configuration>
创建mapper接口(创建实体类)
package com.xs.mapper; public interface UserMapper { // 添加功能 int addUser(); }
创建MyBatis的映射文件
-
映射文件的命名规则:表所对应的实体类的类名+Mapper.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.atguigu.mybatis.mapper.UserMapper"> <!-- mapper接口和映射文件保证两个一致 1.mapper接口全类名和映射文件的namespace一致 2.mapper接口的方法名要和映射文件中的sql id保持一致 --> <!-- int addUser();--> <insert id="addUser"> insert into user values (null,'admin','123456',23,'男','xxxxxxxx@qq.com') </insert> </mapper>
测试添加功能
package com.atguigu.mybatis.test; import com.atguigu.mybatis.mapper.UserMapper; 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.apache.log4j.lf5.util.Resource; import org.junit.Test; import java.io.IOException; import java.io.InputStream; public class MyBatisTest { @Test public void testMyBatis() throws IOException { //加载核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //获取sqlsessionFactoryBuilder SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); //获取sqlSessionFactory SqlSessionFactory sqlSessionFactory =sqlSessionFactoryBuilder.build(is); //获取sqlsession(true自动提交事务) SqlSession sqlSession = sqlSessionFactory.openSession(true); //获取mapper接口对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); //测试功能 int result = mapper.addUser(); //提交事务 //sqlSession.commit(); System.out.println("result" + result); } }
添加日志信息
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!--这里报错没事--> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="Encoding" value="UTF-8" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS}%m (%F:%L) \n" /> </layout> </appender> <logger name="java.sql"> <level value="debug" /> </logger> <logger name="org.apache.ibatis"> <level value="info" /> </logger> <root> <level value="debug" /> <appender-ref ref="STDOUT" /> </root> </log4j:configuration>
-