Mybatis入门
1.MyBatis下载
1.在gitHub搜索mybatis 选择mybatis/mybatis-3
下拉
里面就有了
2.MyBatis是什么
是一个框架
可以定做话sql语句,存储过程以及高级映射。
代替了JDBC 只需要书写sql语句 MyBatis自己来执行
持久层框架
是一个半自动化的ORM框架
O:Object——对象 R:Relation——表 M: mapping——映射(有全自动 但是效率低难度高)
是一个框架 早期叫ibatis, 代码在GitHub
MyBatis SQL Mapper Framework for Java:适用于 Java 的 MyBatis SQL 映射器框架
1.SQL mapper: sql映射
可以吧数据库表中的一行数据映射为一个对象
一行数据可以看成一个java对象 ,操作这个对象,就相当于操作表中的数据
2.Data Access objects (DAOS)。数据访问 ,对数据库进行增删改查
3.mybatis有什么用
1。提供创建啦 Connection MStatement ResultSet的能力 ,不用开发人员创建 2。可以执行SQL语句的能力,不用你执行 3。提供了吧SQL结果转换成list集合的能力 4.还具备管闭资源的能力
你能干什么 就是提供sql语句
4.MyBatis怎么用(Maven)简单的查询
1.创建项目
2.下一步
3。下一步
4。 等待下载资源保障网络
5.准备jar包
<!--mybaitsjar包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--加载mysql的jar包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency>
- 在idea的右边点击Maven 点击工具栏第一个刷新 会自动下载jar包
7,右键main创建java 文件夹和 resources文件夹
8.创建主配置文件和映射文件
9.书写主配置文件和映射文件
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="a"默认数据源 environment:单个环境 id:唯一性标识 transactionManager:事务管理——**jdbc java管理 Managed:容器管理——tomcat dataSource:数据源:unpooled:普通打开方式 pooled:数据库连接池 JNDI:远程数据库连接 --> <!--作用:加载properteis文件的 resources java都是classpath根,现在是两个文件夹,发布后是一个--> <properties resource="druid.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driverClassName}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/Teacher.xml"/> </mappers> </configuration>
Book。xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:定位文件:namespace+id--> <mapper namespace="mapper.Teacher"> <!--映射文件:sql--> <!--id:sql的名字 resultType:映射关系--> <select id="selectTeacher" resultType="java.util.Map"> select * from t_book </select> </mapper>
10,。书写测试类
public class MainTest { public static void main(String[] args) { try { InputStream is= Resources.getResourceAsStream("mybatis.xml");//获取主配置文件 //创建工具类LsqlSessionFactory SqlSessionFactoryBuilder Builder = new SqlSessionFactoryBuilder(); //SqlSessionFactory factory=builder.build(is,"development");//factory:sqlSession的工厂——基于数据源创建出来SqlSessionFactory // default="development"走默认 如果是默认的就后面的就可以不写 SqlSessionFactory factory = Builder.build(is); SqlSession session=factory.openSession();//执行sql List<Object> objects = session.selectList("mapper.Book.selectBook"); System.out.println(objects); } catch (IOException e) { e.printStackTrace(); } } }
- 运行测试类
5.MyBatis怎么用(Maven)简单的查询(利用接口查询)
1.创建接口和xml (接口和xml的名字要对应)
2.设置加载主配置文件
3.设置测试类测试
public static void main(String[] args) { try { InputStream is= Resources.getResourceAsStream("mybatis.xml");//找主配置文件 SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();//工具类:创建slqSessionFactory //SqlSessionFactory factory=builder.build(is,"development");//factory:sqlSession的工厂——基于数据源创建出来SqlSessionFactory // default="development"走默认 SqlSessionFactory factory=builder.build(is); SqlSession session=factory.openSession();//执行sql的 //mapper.Teacher.selectTeacher List<Map> list=session.selectList("mapper.Teacher.selectTeacherName");//框架的强大可以直接吧 System.out.println(list); } catch (IOException e) { e.printStackTrace(); } }
6.利用接口类实现查询
设置接口对应映射文件
注意主配置文件的修改
7.修改删除添加
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mapper.person"> <resultMap id="entity" type="com.entiy.Person"> <id column="id" property="id"></id> <result column="professional" property="professional"></result> </resultMap> <!-- resultType ==结果类型 parameterType== 参数类型 --> <select id="selectByidentity" resultType="com.entiy.Person" parameterType="java.lang.Integer"> SELECT * FROM person WHERE ID = #{id} </select><select id="selectByidMap" resultType="java.util.Map" parameterType="java.lang.Integer"> SELECT * FROM person WHERE ID = #{id} </select> <select id="selectListentiy" resultType="java.util.Map" > SELECT * FROM person </select> <select id="selectListMap" resultType="java.util.Map"> SELECT * FROM person </select> <!-- 修改删除新增 默认返回影响条数 --> <delete id="deleteByid" parameterType="java.lang.String"> delete from person where id = #{id} </delete> <update id="updateentiy" parameterType="com.entiy.Person"> update person set name=#{name},age=#{age} where id=#{id} </update> <insert id="insertMap" parameterType="java.util.Map"> insert into person values (null,#{name},#{age},#{professional}) </insert> </mapper>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!