Whats Mybatis

持久层框架, 替代MVC层中DAO,因为DAO 层的需求就是 :能与数据库交互的对象、 能执行SQL语句。

不同于JDBC的connection,MyBatis 中有个SqlSession ,什么是SqlSession,以及它的作用是什么:

1 向SQL语句传入参数

2执行SQL语句

3 获取执行SQL语句的结果

4 事务的控制

如何获得SqlSession

1 通过配置文件获取数据库连接的相关需求

2 通过配置文件构建SqlSessionFactory

3 通过SqlSessionFactory 打开openSession

下面看代码具体操作:

 

目录结构:

MyBatis 配置文件

MySQL-connector…….对应的驱动文件

Ojdbc14.jar……..oracle 对应的驱动文件

Userinfo.java(数据库对应的实体类)

package bean;

public class Userinfo {

    private String uname;
private String upass;
private int id; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
} }

Mapper

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="UserinfoMapper">
<!--
public String getuser (int id){}
-->
<select id="getuser" parameterType="int" resultType="java.lang.String" >
select uname from userinfo where id=#{id}
</select>
</mapper>

Test

 package Test;

 import java.io.InputStream;

 import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Demo { /**
*
* 测试连接数据库,执行SQL语句
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub // 加载Mybatis的主配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml"); // 创建生产session的工厂类 session不是作用域 -- 相当于connection
SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
SqlSessionFactory ssf = sfb.build(is);
// 打开session
SqlSession session=ssf.openSession();
//执行sql语句
/**
* UserinfoMapper 是UserinfoMapper.xml namespace 的名字
* getuser select id 对应的方法名字
* 3 是传的参数
*/ String name=session.selectOne("UserinfoMapper.getuser", 3);
System.out.println("name:"+ name);
session.close();
System.out.println("over"); } }

SqlMapConfig.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="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据源 相当于JDBC连接数据库
Class.forName("oracle.jdbc.driver.OracleDriver");
String user = "scott";
String password = "tiger";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
-->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="scott" />
<property name="password" value="tiger" />
</dataSource>
</environment>
</environments>
<!-- 读取Mapper包下的UserinfoMapper.xml文件 -->
<mappers>
<mapper resource="Mapper/UserinfoMapper.xml" />
</mappers>
</configuration>

控制台输出的文件

Mybatis入门(一)之操作数据库的更多相关文章

  1. mybatis框架-SqlSession会话操作数据库的两种方式

    1.通过SqlSession实力来直接执行已经映射的sql语句 例如,查询整个用户表中的信息 在UserMapper.xml中编写sql语句 编写测试方法: 注意:这里使用的selectList方法: ...

  2. Mybatis入门(一)------基本概念操作

    Mybatis简介 Mybatis是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置 ...

  3. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  4. 使用mybatis plus 操作数据库

    mybatis plus 是基于mybatis 的一个增强包,比 mybatis 更加容易使用. 特点: 1.分页支持 2.支持自定义查询. 3.简单的情况下,不需要写map.xml 文件 4.支持租 ...

  5. mybatis入门--单表的增删改操作

    单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作.首先是在user.xml文件中添加insert的方法.代码如下 <!-- ...

  6. Mybatis注解方法操作数据库

    Java中使用Mybatis操作数据库主要有两种方法:注解和xml配置,注解相对比较简单和方便,两种方式的效果一致.本文以注解的方式说明用Mybatis访问数据库的方法 一.创建数据表(MySql) ...

  7. Spring入门(十五):使用Spring JDBC操作数据库

    在本系列的之前博客中,我们从没有讲解过操作数据库的方法,但是在实际的工作中,几乎所有的系统都离不开数据的持久化,所以掌握操作数据库的使用方法就非常重要. 在Spring中,操作数据库有很多种方法,我们 ...

  8. JavaWeb_(Spring框架)整合Mybatis加入事务操作数据库

    整合Mybatis a)导包: i.Spring:基本包.aop.aspects.jdbc.tx.test: ii.Mybatis:mybatis-3.4.6 iii.整合包:mybatis-spri ...

  9. JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一

    系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...

  10. JAVA - SpringBoot项目引用MyBatis操作数据库

    JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...

随机推荐

  1. 5)C语言函数(C自考学习)

    函数的概念 在一个程序中,如果在不同地点多次执行某项操作,就可以把完成这项操作的程序段从程序中独立出来,定义成函数,而原来程序中凡需要进行这个操作的程序段可以只用"函数调用"来替代 ...

  2. 《Metasploit魔鬼训练营》虚拟环境搭建中网络配置的一些问题

    直接使用网上下载与书本配套的虚拟机环境,发现NAT服务器10.10.10.254(192.168.10.254)虽然可以和其他虚拟机ping通,但是连不上网.自然windows xp靶机也连不上网了. ...

  3. Spring4 IOC详解

    Spring4 IOC详解 上一章对Spring做一个快速入门的教程,其中只是简单的提到了IOC的特性.本章便对Spring的IOC进行一个详解.主要从三个方面开始:基于xml文件的Bean配置,基于 ...

  4. 最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络

    最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写 ...

  5. 内存泄漏监测-LeakCanary

    内存泄漏监测方法之使用LeakCanary LeakCanary出处: github:https://github.com/square/leakcanary/issues square 公司 这个公 ...

  6. Python学习笔记 set&&dict

    dict 是个好东西啊,这个东东是类似于c++里面的map.其形式为 dict={key:value,key:value....} 这个东西好玩的地方主要在于 1.他的key值查找采用的是哈希算法,速 ...

  7. ASP.NET中HttpContext.Cache的使用

    -------------------------------键 --值-----依赖-----过期时间-------------------------------绝对过期------------- ...

  8. JAVAFX-3 开发应用

    理解布局 布局容器(Layoutcontainer)或面板(Pane)允许对JavaFX应用程序场景图中的UI控件进行灵活.动态的排布.JavaFX Layout API包括下列容器类: ● Bord ...

  9. JAVA基础4——谈谈HashCode与HashMap相关概念

    谈谈HashCode与HashMap HashCode hashCode,即一个Object的散列码. HashCode的作用: 对于List.数组等集合而言,HashCode用途不大: 对于Hash ...

  10. Foundation框架的小总结

    一.Foundation框架—结构体 一.基本知识 Foundation框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数 ...