20191227——mybaits入门

基础知识
mybatis是一个框架,理解框架原理。mybatis框架
mybatis入门程序,是一个持久层的框架,就是对JDBC的封装。
对原生态的jdbc的问题进行总结,就是单独使用jdbc开发。
案例 实现用户的增删改查
mybatis和dao两种方法
原始的dao开发方法(程序需要编写dao接口和dao实现类)
mybatis的mapper接口,代理开发方法

mybatis配置文件 SqlMapConfig.xml
mybatis的核心,输入映射,输出映射
mybatis的动态sql,sql如何快速映射开发

高级知识
高级映射,一对一查询,一对多的查询,多对多的查询
订单商品的数据分析
mybatis延迟加载
mybatis查询缓存
mybatis与spring整合
mybatis逆向工程

对原生jdbc程序中问题总结

使用jdbc查询mysql数据库中用户表的信息

Public static void main(String[] args) {
			Connection connection = null;
			PreparedStatement preparedStatement = null;
			ResultSet resultSet = null;
			
			try {
				//加载数据库驱动
				Class.forName("com.mysql.jdbc.Driver");
				
				//通过驱动管理类获取数据库链接
				connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "mysql");
				//定义sql语句 ?表示占位符
			String sql = "select * from user where username = ?";
				//获取预处理statement
				preparedStatement = connection.prepareStatement(sql);
				//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
				preparedStatement.setString(1, "王五");
				//向数据库发出sql执行查询,查询出结果集
				resultSet =  preparedStatement.executeQuery();
				//遍历查询结果集
				while(resultSet.next()){
					System.out.println(resultSet.getString("id")+"  "+resultSet.getString("username"));
				}
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				//释放资源
				if(resultSet!=null){
					try {
						resultSet.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				if(preparedStatement!=null){
					try {
						preparedStatement.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				if(connection!=null){
					try {
						connection.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}

			}

		}

原生的jdbc程序

创建java工程,加入jar包
数据驱动包(mysql5.1)
在这里插入图片描述
下边是oracle的驱动
上边的是mysql的驱动

使用预编译的Statement会提高数据库的性能

问题总结
1.数据库连接,使用时就创建,不适用就释放。进行频繁的链接开启与关闭,造成数据库资源浪费,影响数据库的性能

2.将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护,设想,将sql语句配置在xml配置文件中,即使sql变化,也不需要对java代码进行编译。

3.向statement中设置参数,对占位符号设置和设置参数值,硬编码在java代码中,不利于系统维护。将sql语句以及占位符号和参数全部配置在xml中。

4.从resultSet中遍历数据时,存在硬编码,将获取表的字段进行硬编码。将查询的结果集,直接映射成java对象。

jar包

JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。
JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类。这些细节就不用管它了

mybatis是什么

mybatis是一个持久层框架,是apache下的顶级项目
mybatis主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化)满足sql的语句

mybati可以将preparedStatement中的输入参数自动输入映射,将查询结果集灵活映射成java对象。

后来mybatis托管到google上,后来托管到github下

mybatis框架

SqlMapConfig.xml(是mybatis全局配置文件)配置了数据源、事务等mybatis运行环境

mapper.xml配置映射关系,主要配置Sql语句
最后我们还是要操作数据库。

SqlSessionFactory 创建SqlSession

SqlSession(会话)操作数据库:增删改查 就是一个接口

Executor(执行器)SqlSession内部通过执行器操作数据库 也是一个接口,基本执行器与缓存执行器

mappered statement(底层封装对象) 对操作数据库存储封装,包括sql语句,输入参数,输出结果类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值