MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

jar包和配置

1.jar包必须包含mybatis(我用的mybatis-3.4.6.jar)还有数据库链接jar包(我用的mysql-connector-java-5.1.27.jar)。

2.创建全局配置文件(随便取名:mybatis-config.xml),该文件的作用是用来对mybatis进行整体设置,并且配置连接数据库的数据源(DateSoure)。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 这里的config表示这个配置文件是mybatis的整体配置文件 -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置数据库的参数从哪里读取 -->
<properties resource="db.properties"/>
<!-- 设置数据类型别名 -->
<typeAliases>
<typeAlias type="com.xj.dao.User" alias="user"/>
</typeAliases>
<!-- 数据库连接环境配置 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 连接映射配置 -->
<mappers>
<mapper resource="com/xj/dao/IUserdao.xml"/>
</mappers>
</configuration>

3.创建映射配置文件(取名IUserdao),并且在全局配置文件中连接此映射文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 使用接口的代理方式 namespace 必须和接口的全路径名称一致 -->
<mapper namespace="com.xj.dao.IUserDao">
<!-- id必须和接口声明的方法一致 -->
<select id="query" resultType="user">
select * from t_user
</select>
<insert id="add" parameterType="user">
insert into t_user(no,name,age) values(#{no},#{name},#{age})
</insert>
<update id="update" parameterType="user">
update t_user set name=#{name},age=#{age} where no = #{no}
</update>
<delete id="delete" parameterType="int">
delete from t_user where no = #{no}
</delete>
</mapper>

4.创建数据配置文件(db.properties),并且在全局配置文件(mybatis-config.xml)引用。

#数据库配置

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
username=root
password=619238

测试

@Test
public void test() throws Exception {
//1.通过resources对象加载全局配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//2.通过加载后配置文件获取sqlsessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3.通过sqlsessionFactory获取sqlsession对象,true表示开启事务自动提交,默认是false。
SqlSession session = factory.openSession(true);
User user = new User();
//4.session中的方法全是映射配置文件中namespace配置好的
List<User> list = session.selectList("xj.query", user);
System.out.println("查询:"+list);
int insert = session.insert("xj.add", new User(1009, "赵四", 39));
System.out.println("插入:"+insert);
int update = session.update("xj.update", new User(1009, "王五", 29));
System.out.println("修改:"+update);
int delete = session.delete("xj.delete",1005);
System.out.println("删除:"+delete);
//5.关闭数据链接
session.close();
}

测试结果:

MyBatis的基本用法的更多相关文章

  1. [mybatis]Example的用法-转

    转自:https://blog.csdn.net/zhemeban/article/details/71901759 Example类是什么? Example类指定如何构建一个动态的where子句. ...

  2. [mybatis]Example的用法

    Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生 ...

  3. 关于mybatis的一些用法

    resultMap 的用法 <resultMap id="唯一标识" type="映射的pojo类"> <id column = " ...

  4. MyBatis OGNL表达式用法

    From<MyBatis从入门到精通> <!-- 4.7 OGNL用法 MyBatis常用的OGNL表达式: e1 or e2: e1 and e2 e1 == e2; e1 != ...

  5. [mybatis]Example的用法 标签: mybatis 2017-05-21 21:46 651人阅读 评论(11)

    Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生 ...

  6. [已解决] MyBatis 中bind用法

    JAVA: TC_ENTR_FLOW selectFlowForUpdate(String ENTR_ID); XML: <select id="selectFlowForUpdate ...

  7. Java深入 - MyBatis的经常用法

    MyBatis我们这篇文章主要记录一些经常使用的操作方法.这样在开发和使用的过程中这篇文章能够当做工具书来使用. MyBatis的数据源配置 <bean id="dataSource& ...

  8. mybatis配置文件namespace用法总结

    本文为博主原创,未经允许不得转载: 由于在应用过程中,发现namespace在配置文件中的重要性,以及配置的影响,在网上看了很多博客,发现很多人对namespace存在误解, 所以总结一下namesp ...

  9. Mybatis标签bind用法

    Mybatis使用bind元素进行模糊查询,不用在乎数据库是mysql还是oracle从而提高可移植性 使用bind元素传递多个参数 public List<Student> findSt ...

  10. mybatis之foreach用法

    在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item, ...

随机推荐

  1. 2019-4-17-从-dotnet-core-3.0-的特性让-WPF-布局失效讨论-API-兼容

    title author date CreateTime categories 从 dotnet core 3.0 的特性让 WPF 布局失效讨论 API 兼容 lindexi 2019-4-17 1 ...

  2. 如何理解张量tensor

    1 关于张量的四种定义 “张量”在不同的运用场景下有不同的定义. 第一个定义,张量是多维数组,这个定义常见于各种人工智能软件.听起来还好理解.--本文仅解释此种 2 多维数组 从第一个定义:张量是多维 ...

  3. 【html、CSS、javascript-12】jquery-效果

    一.jQuery 效果- 隐藏和显示 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").click(func ...

  4. bzoj 1053 [HAOI2007]反素数ant——关于质数的dfs / 打表

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1053 写了个打表程序. #include<iostream> #include& ...

  5. Ubuntu18.04 磁盘挂载在某目录下

    简介 记录Ubuntu18.04 桌面版系统下实现某个磁盘挂载到自己想要的目录下,内容参考网上教程,此处为自己操作记录. 查看当前所有的磁盘信息 命令:sudo fdisk -l 从列出的信息中可以看 ...

  6. Java review-basic5

    1. How would you write a socket client/server in Java The server DateServer.java package edu.lmu.cs. ...

  7. 备忘 ubuntu ip 及 dns 的坑

    以前都用 ubuntu 16.04 现在用 18.04 遇到几个恶心的事,现在解决了,记录下来. 1. 设置 DNS  ,    DNS 设置老是不对,最后发现问题老版本 ubuntu 17.10以下 ...

  8. Wireless Network POJ - 2236 (并查集)

    #include<iostream> #include<vector> #include<string> #include<cmath> #includ ...

  9. GIT → 05:Git命令行操作

    5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...

  10. Phpstrom学习笔记

    1.用*标识编辑过的文件 File - Editor – General - Editor Tabs 选中Mark modifyied tabs with asterisk