Mybatis入门(一)

这篇mybatis入门非常清晰!!!
本文转自:https://blog.youkuaiyun.com/u013049248/article/details/54317540

初识mybatis
今天,一起来说说mybits这个框架吧。这是一个持久层的框架。之前叫做ibatis。所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶。不是写错了,它确实就是这个样子的。

        mybatis是什么
      首先,我们来看看mybatis是个什么东东,它有什么用?我们为什么要学习它。mybatis是一个持久层的框架。所谓的持久层,就是我们三层中的dao层。主要负责跟数据库进行交互。可以建立数据库表和系统中的对象的一对一映射关系。这种框架我们称之为orm框架。但是mybatis框架需要自己写sql语句,且不能像hibernate那样自动生成sql语句,并且建立实体类和数据库的映射。所以我们说它是不完全的orm框架。

     有的同学可能对映射这个词有点不太明了。这里举个例子:如果我们在数据库中有一user表,里面的字段有id、name、birthday、sex、address等字段,表中有一条数据,如图所示:

      

      而我们系统中也应该存在一个将这些字段存为属性的类,如图:

          

     我们的这个表中的数据,对应表中的代码的话,应该是一个User的对象。这个对象中的各个属性的值即为表中的那一条数据。而框架通过我们的配置,将这个表中的记录和这个类的对象建立一对一的关系。我们称之为映射。这样的映射建立之后,我们可以通过操作这个对象实现对数据库的修改。这样我们在考虑业务逻辑的时候就可以不再考虑我们的数据库中的表是如何存储的,而是对我们的实体对象进行操作。简化开发。

     那么,mybatis这个框架都可以做些什么呢?

     这个其实也很简单。无非是对数据库的增删改查。这是每个持久层框架都应该支持的事情。sql语句可以干的事情,mybatis基本上都可以做。

     mybatis如何使用
     在这里,我们不说那些特别高大上的使用方式,只是简单地实现一个最基础的mybatis框架的搭建以及我们的最基本的根据id查询用户的功能的实现。

     第一步:创建java工程

     第二步:导入jar包

    在Java项目中,要想搭建一个框架,首先需要准备的是mybatis的jar包。而由于我们的mybatis是依赖log4j进行输出的,所以我们还需要log4j的包。这里将博主用到的包进行下截图分享。

     

      第三步:log4j.properties的创建

             在classpath下创建log4j.properties用于供log4j调用。其代码可以从网上搜索直接粘贴使用。我的代码如下:

Global logging configuration

log4j.rootLogger=DEBUG, stdout

Console output…

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
第四步:sqlMapConfig.xml文件配置
在classpath目录下创建sqlMapConfig.xml文件,sqlMapConfig.xml是mybatis的核心配置文件,现配置其数据源和事物管理。其内容如下:

<?xmlversion="1.0"encoding="UTF-8"?>

package cn.itcast.pojo;

import java.util.Date;

public class User {
private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址

public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getSex() {
	return sex;
}
public void setSex(String sex) {
	this.sex = sex;
}
public Date getBirthday() {
	return birthday;
}
public void setBirthday(Date birthday) {
	this.birthday = birthday;
}
public String getAddress() {
	return address;
}
public void setAddress(String address) {
	this.address = address;
}
@Override
public String toString() {
	return "User [id=" + id + ", username=" + username + ", sex=" + sex
			+ ", birthday=" + birthday + ", address=" + address + "]";
}

}
第六步:sql映射文件创建
在classpath下的sqlmap(该目录可以任意,不过建议单独为配置文件建立一个文件夹,以便于管理)目录下创建一个user.xml的文件代码如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<mappernamespace=“test”>

第七步:加载映射文件 将sql映射文件添加到我们的mybatis的核心配置文件中,使我们的mybatis在运行的时可以识别映射文件。代码如下:
<!-- id:sql语句的唯一标识, 要求在同一个映射文件中id不能重复 
parameterType:传入参数类型
resultType:返回结果集类型

#{}占位符: 占位符起到占位的作用, 如果传入参数是简单类型(String, long, integer, double, boolean等)那么#{}中的变量名称可以随意起名
-->
<select id="findUserById" parameterType="java.lang.Integer" resultType="cn.itcast.pojo.User">
	SELECT * FROM user where id=#{id}
</select>
2.测试程序
@Test
public void testFindUserById() throws Exception {
	String resource = "SqlMapConfig.xml";
	//通过流将核心配置文件读入
	InputStream inputStream = Resources.getResourceAsStream(resource);
	//通过核心配置文件输入流, 创建会话工厂
	SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
	//通过工厂创建会话
	SqlSession openSession = factory.openSession();
	
	//第一个参数: 调用的sql语句 namespace+.+sq语句id, 第二个参数:传入sql语句中的参数
	User user = openSession.selectOne("test.findUserById", 1);
	
	System.out.println(user);
	
}
    至此,mybatis入门程序完成。
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值