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. 2018-2-13-visual-Studio-无法调试,提示程序跟踪已退出

    title author date CreateTime categories visual Studio 无法调试,提示程序跟踪已退出 lindexi 2018-2-13 17:23:3 +0800 ...

  2. Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F

    Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...

  3. bzoj 3110 [Zjoi2013]K大数查询——线段树套线段树(标记永久化)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3110 第一道线段树套线段树! 第一道标记永久化! 为什么为什么写了两个半小时啊…… 本想线段 ...

  4. 访问树中的所有元素(DOM)

    创建一个函数,给定页面上的DOM元素,将访问元素本身及其所有后代(而不仅仅是它的直接子代).对于访问的每个元素,函数应将该元素传递给提供的回调函数. 函数的参数应该是: 一个DOM元素 一个回调函数( ...

  5. ACdream 1112

    题目链接 Alice and Bob Time Limit: 6000/3000MS (Java/Others)Memory Limit: 256000/128000KB (Java/Others) ...

  6. hibernate分页功能

    设置开始位置无效 设置终止位置是可以的 设置完之后,并没有分页 问题解决 https://blog.csdn.net/qq_39859824/article/details/77902488 http ...

  7. Python学习笔记(六)Python组合数据类型

    在之前我们学会了数字类型,包括整数类型.浮点类型和复数类型,这些类型仅能表示一个数据,这种表示单一数据的类型称为基本数据类型.然而,实际计算中却存在大量同时处理多个数据的情况,这种需要将多个数据有效组 ...

  8. webpack4配置基础

    前言 为什么要使用构建工具? 1.转换ES6语法(很多老版本的浏览器不支持新语法) 2.转换JSX  3.CSS前缀补全/预处理器  4.压缩混淆(将代码逻辑尽可能地隐藏起来)  5.图片压缩  6. ...

  9. List的深度序列化Demo

    今天项目中出现了这个问题...就是使用一个List去进行其他的操作,生成一个新的List.但是却将原来的List的值也给改了...这应该是引用传递的问题,查了资料发现这是浅拷贝造成的.(ps:使用ad ...

  10. Html5知识点以及兼容性

    什么的HTNL5? HTML5 是最新的 HTML 标准. HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件. HTML5 拥有新的语义.图形以及多媒体元素. HTML5 提供的 ...