MyBatis的基本用法
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的基本用法的更多相关文章
- [mybatis]Example的用法-转
转自:https://blog.csdn.net/zhemeban/article/details/71901759 Example类是什么? Example类指定如何构建一个动态的where子句. ...
- [mybatis]Example的用法
Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生 ...
- 关于mybatis的一些用法
resultMap 的用法 <resultMap id="唯一标识" type="映射的pojo类"> <id column = " ...
- MyBatis OGNL表达式用法
From<MyBatis从入门到精通> <!-- 4.7 OGNL用法 MyBatis常用的OGNL表达式: e1 or e2: e1 and e2 e1 == e2; e1 != ...
- [mybatis]Example的用法 标签: mybatis 2017-05-21 21:46 651人阅读 评论(11)
Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生 ...
- [已解决] MyBatis 中bind用法
JAVA: TC_ENTR_FLOW selectFlowForUpdate(String ENTR_ID); XML: <select id="selectFlowForUpdate ...
- Java深入 - MyBatis的经常用法
MyBatis我们这篇文章主要记录一些经常使用的操作方法.这样在开发和使用的过程中这篇文章能够当做工具书来使用. MyBatis的数据源配置 <bean id="dataSource& ...
- mybatis配置文件namespace用法总结
本文为博主原创,未经允许不得转载: 由于在应用过程中,发现namespace在配置文件中的重要性,以及配置的影响,在网上看了很多博客,发现很多人对namespace存在误解, 所以总结一下namesp ...
- Mybatis标签bind用法
Mybatis使用bind元素进行模糊查询,不用在乎数据库是mysql还是oracle从而提高可移植性 使用bind元素传递多个参数 public List<Student> findSt ...
- mybatis之foreach用法
在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item, ...
随机推荐
- LINUX对于未安装的软件包的查看
查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等: 1.查看一个软件包的用途.版本等信息: 语法: rpm -qpi file.rpm 举例: [root@localh ...
- Luogu P1073 最优贸易(最短路)
P1073 最优贸易 题意 题目描述 \(C\)国有\(n\)个大城市和\(m\)条道路,每条道路连接这\(n\)个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这\(m\)条道路中有 ...
- Veristand学习札记(3)- CD的开发
转载:https://blog.csdn.net/mfcjishiben/article/details/79417739 1 CustomDevice开发 CD的开发必须遵照NI提供的模板进行.安装 ...
- 全景还原报错现场 | 应用实时监控 ARMS 上线用户行为回溯功能
随着前端技术日新月异迅猛发展,为了实现更好的前端性能,最大程度提高用户体验,支持单页应用的框架逐渐占领市场,如众所周知的React,Vue等等.但是在单页应用的趋势下,快速定位并解决JS错误却成为一大 ...
- System V启动脚本启动的服务
/etc/rc.d/init.d/目录下的内容如下:这些常用的服务器都是System v的服务,要控制System V 的服务,我们可以使用以下命令 #/etc/rc.d/init.d/script ...
- 阿里云出手SaaS生态,中国SaaS市场小而不强有望破解
企业服务SaaS市场还有很大的增长空间.SaaS的鼻祖Salesforces今年5月迈上了千亿美元市值的门槛,再一次为ToB市场注入了兴奋剂.单单一个SaaS CRM,目前全球的市场规模就超过400亿 ...
- js实现HashTable
1.哈希表使用键值对进行的数据储存,在数据的存储位置和它的关键字之间建立一一对应的关系,从而使关键字和结构中的一个唯一的存储位置相对应,所以在检索数据时 只需要根据这个关系便可以快速定位到要找的数据. ...
- toString方法和valueof()方法的区别
JavaScript引用类型之Array数组的toString()和valueof()方法的区别 一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().to ...
- Codeforces 356A
这题有个注意的地方,就是对集合边读边删除的时候,应该尤为注意.. my_set.erase(it++) #include <iostream> #include <cstring ...
- Python中输入和输出(打印)数据
一个程序要进行交互,就需要进行输入,进行输入→处理→输出的过程.所以就需要用到输入和输出功能.同样的,在Python中,怎么实现输入和输出? Python3中的输入方式: Python提供了 inpu ...