| MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架 |
| MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 |
| MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 |
| MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架 |
| # 导入依赖 |
| <packaging>jar</packaging> |
| <dependencies> |
| |
| <dependency> |
| <groupId>org.mybatis</groupId> |
| <artifactId>mybatis</artifactId> |
| <version>3.5.7</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>4.12</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>mysql</groupId> |
| <artifactId>mysql-connector-java</artifactId> |
| <version>5.1.3</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| <version>1.2.17</version> |
| </dependency> |
| </dependencies> |
| |
| # 编写mybits配置文件 |
| <?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.jdbc.Driver"/> |
| <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> |
| <property name="username" value="root"/> |
| <property name="password" value="123456"/> |
| </dataSource> |
| </environment> |
| </environments> |
| |
| <mappers> |
| <mapper resource="mappers/UserMapper.xml"/> |
| </mappers> |
| </configuration> |
| |
| # 创建实体类:getter和setter方法、构造器、toString方法 |
| public class User { |
| |
| private Integer id; |
| |
| private String username; |
| |
| private String password; |
| |
| private Integer age; |
| |
| private String sex; |
| |
| private String email; |
| |
| } |
| |
| # 接口 |
| public interface UserMapper { |
| |
| int insertUser(); |
| |
| } |
| |
| # 映射文件 |
| <?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"> |
| |
| <insert id="insertUser"> |
| insert into t_user values(null,'admin','123456',23,'男','12345@qq.com') |
| </insert> |
| |
| </mapper> |
| |
| # 测试方法 |
| @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 |
| SqlSession sqlSession = sqlSessionFactory.openSession(); |
| //获取mapper接口对象 |
| UserMapper mapper = sqlSession.getMapper(UserMapper.class); |
| //测试功能 |
| int result = mapper.insertUser(); |
| //提交事务 |
| sqlSession.commit(); |
| System.out.println("result:"+result); |
| } |
| @Test |
| public void testMyBatis() throws IOException { |
| |
| InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); |
| |
| SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); |
| |
| SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); |
| |
| SqlSession sqlSession = sqlSessionFactory.openSession(true); |
| |
| UserMapper mapper = sqlSession.getMapper(UserMapper.class); |
| |
| int result = mapper.insertUser(); |
| |
| |
| 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> |
| |
| # 日志级别:FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试) |
| # 查询接口 |
| User getUserById(); |
| |
| # 查询映射 |
| <select id="getUserById" resultType="com.atguigu.mybatis.pojo.User"> |
| select * from t_user where id = 3 |
| </select> |
| |
| # 查询功能的标签必须设置resultType或resultMap,resultType:设置默认的映射关系,resultMap:设置自定义的映射关系 |
| |
| |
| |
| |
| |
| <environments default="development"> |
| |
| |
| |
| |
| |
| <environment id="development"> |
| |
| |
| |
| |
| |
| |
| |
| <transactionManager type="JDBC"/> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <dataSource type="POOLED"> |
| |
| <property name="driver" value="${jdbc.driver}"/> |
| |
| <property name="url" value="${jdbc.url}"/> |
| |
| <property name="username" value="${jdbc.username}"/> |
| |
| <property name="password" value="${jdbc.password}"/> |
| </dataSource> |
| </environment> |
| |
| <environment id="test"> |
| <transactionManager type="JDBC"/> |
| <dataSource type="POOLED"> |
| <property name="driver" value="com.mysql.jdbc.Driver"/> |
| <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> |
| <property name="username" value="root"/> |
| <property name="password" value="123456"/> |
| </dataSource> |
| </environment> |
| </environments> |
| # 编写jdbc.properties |
| jdbc.driver=com.mysql.jdbc.Driver |
| jdbc.url=jdbc:mysql://localhost:3306/mybatis |
| jdbc.username=root |
| jdbc.password=123456 |
| |
| # mybatis配置文件中导入jdbc配置文件 |
| <properties resource="jdbc.properties" /> |
| |
| # 使用${}引入配置 |
| <environment id="development"> |
| <transactionManager type="JDBC"/> |
| <dataSource type="POOLED"> |
| |
| <property name="driver" value="${jdbc.driver}"/> |
| |
| <property name="url" value="${jdbc.url}"/> |
| |
| <property name="username" value="${jdbc.username}"/> |
| |
| <property name="password" value="${jdbc.password}"/> |
| </dataSource> |
| </environment> |
| properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers? |
| # mybatis配置文件中设置如下 |
| <typeAliases> |
| |
| |
| |
| |
| |
| |
| <typeAlias type="com.atguigu.mybatis.pojo.User"></typeAlias> |
| </typeAliases> |
| |
| # 之后就可以在mapper映射文件中使用 |
| <select id="getAllUser" resultType="User"> |
| select * from t_user |
| </select> |
| |
| # 不区分大小写 |
| <select id="getAllUser" resultType="user"> |
| select * from t_user |
| </select> |
| |
| # 方式2 |
| <typeAliases> |
| |
| <package name="com.atguigu.mybatis.pojo"/> |
| </typeAliases> |
| <mappers> |
| |
| |
| |
| |
| |
| |
| <package name="com.atguigu.mybatis.mapper"/> |
| </mappers> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?