作者:惯性hold不住 | 来源:互联网 | 2023-09-14 08:07
1、mybatis如何实现操作数据库1、导入mybatis的依赖包2、添加日志的配置文件log4j.properties,放在srcmainresourses下3、配置sql
1、mybatis如何实现操作数据库
1、导入mybatis的依赖包
2、添加日志的配置文件log4j.properties,放在src/main/resourses下
3、配置sqlmapconfig.xml文件1、添加约束信息2、数据库连接信息、数据库连接池3、加载mapper.xml配置文件
4、配置mapper.xml文件
5、定义实体类对象
6、测试1、加载核心配置文件2、创建sqlSessionFactory对象3、创建sqlSession4、执行sql语句,传递参数、获取结果5、关闭sqlSession
2、mybatis#和$的区别
1、#使用的是?的形式,在sql语句中做占位符使用;$不使用占位符,是字符串的连接;
2、#使用的是 PreparedStatement 执行sql,效率较高;$使用的是 Statement 执行sql,效率较低;
3、#能够防止sql注入,$不能防止sql注入
3、mybatis如何实现分页
使用limit关键字,limit 5,10;代表检索第6-15行数据
4、mybatis的底层运行原理
1、MyBatis应用程序根据XML配置文件创建SqlSessionFactory;
2、SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession;
3、SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等;
4、用完之后关闭SqlSession
5、为什么要使用mybatis
使用mybatis之后,只需要自己提供SQL语句,其他的工作,诸如建立连接,Statement, JDBC相关异常处理等等都交给Mybatis去做了,那些重复性的工作Mybatis也给做掉了,我们只需要关注在增删改查等操作层面上,而把技术细节都封装在了我们看不见的地方。不使用:我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection(连接数据库), Statement(重要接口,连上数据库后,向数据库发送要执行的SQL语句。Statement对象), ResultSet(数据库结果集的数据表,通常通过执行查询数据库的语句生成) 这些其实只是手段的辅助类。 不仅如此,访问不同的表,还会写很多雷同的代码,工作闲的冗余。
6、mybatis中的SQL语句用到的标签有哪些?
1、where…if… 标签 :用于管理where的语句a) 如果没有条件, 不会生成 where 关键字b) 如果有条件, 会自动添加 where 关键字c) 如果第一个条件中有 and, 自动去除之
2、choose…when…otherwise… 标签 :类似switch语句
3、script 标签 :要在带注解的映射器接口类中使用动态sql,可以使用script
4、bind 标签 :对传出来的语句进行再加工
5、foreach 标签 :拼接参数,用于in语句中
6、include 标签 :可引用部分sql语句,便于调用
7、mybatis怎么进行数值的校验
方法1、创建自定义注解,然后再写一个Mybatis拦截器,拦截 查询相关方法,如果发现 输入参数有自定义注解,并且参数为Null,则直接返回空;
方法2、在Service层 对参数做判断,如果参数为空,直接返回,不需要调用DAO层查询
8、如何开启mybatis二级缓存
方式1、在mapper接口上添加@CacheNamespace注解;
方式2、在mapper.xml文件中添加<cache />添加<cache />标签后, 默认整个mapper中的select方法都会被缓存
A、MybatisPLUS
1、mybatisplus支持创建时间和更新时间吗&#xff1f;
mybatis-plus会自动帮我们更新创建时间和更新时间&#xff0c;但是每张表的字段名必须都得一致。就是每张表的创建时间都叫create_time ,更新时间叫update_time
2、mybatisplus分页查询如何实现&#xff1f;
在后端代码中的controller层中&#xff0c;实现一个IPage对象的实例引用&#xff0c;然后设置总记录数及每页显示条数
持续更新中。。。