mybatis配置步骤

一,mybatis配置步骤

​ 1,创建一个maven项目

​ 2,在pom.xml文件中导入相关的jar包依赖

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><mybatis.version>3.5.4</mybatis.version><ojdbc.version>11.2.0.3</ojdbc.version></properties><dependencies><!--引入junit单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--引入mybatis的坐标依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!--引入orcale的包驱动--><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>${ojdbc.version}</version></dependency><!----><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency></dependencies>

​ 3,创建pojo中的实体类与mapper中的接口(也就是dao中的接口)

//java实体类
@Data
@AllArgsConstructor//全部参数的构造方法
@NoArgsConstructor//无参的构造方法
public class Dept {private Integer deptno;private String dname;private String loc;
}
//mapper接口
public interface DeptMapper {/*** 查询所有dept的所有信息* @return*/List<Dept> findAll();/*** 查询指定deptno的信息* @param deptno* @return*/Dept findOne(int deptno);/*** 插入指定的部门信息* @param dept* @return*/int insert(Dept dept);/*** 修改指定的部门信息* @param dept* @return*/int update(Dept dept);/*** 删除指定deptno的部门信息* @param deptno* @return*/int del(int deptno);
}

4,编写mybatis的主配置文件(mybatis-config.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><!--引入数据源文件,db.properties(该文件在resources源文件夹下)--><properties resource="db.properties"></properties><!--这是mybatis中极为重要的调整配置,此配置会改变mybatis的行为--><settings><!--配置日志--><setting name="logImpl" value="LOG4J"></set></settings><!-- mybatis的数据源配置 可以配置多个数据源,在default中选择使用哪一个数据源--><environments default="oracle"><!--配置oracle的环境--><environment id="oracle"><!--配置事务类型--><transactionManager type="JDBC"></transactionManager><!-- 配置数据库连接信息 (数据源,连接池)--><dataSource type="POOLED"><!--配置数据库的四个基本信息--><property name="driver" value="${oracle.jdbc.driver}"/><property name="url" value="${oracle.jdbc.url}"/><property name="username" value="${oracle.jdbc.username}"/><property name="password" value="${oracle.jdbc.password}"/></dataSource></environment><!--配置mysql的环境--><environment id="mysql"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${mysql.jdbc.driver}" /><property name="url" value="${mysql.jdbc.url}"/><property name="username" value="${mysql.jdbc.username}" /><property name="password" value="${mysql.jdbc.password}" /></dataSource></environment></environments><!--配置映射文件的位置(如果是注解的话那么就是配置注解所在包的位置)--><!--此二者只能使用其中的任意一种--><mappers><!--配置文件配置--><mapper resource="com/wzh/mapper/xxx.xml"></mapper><!--或者注解配置--><mapper class="com.wzh.mapper.xxx"></mapper></mappers>
</configuration>

​ 5,配置映射文件(注意,该映射文件的位置在resource源文件夹中,最好有着与mapper接口相同的文件结构,在java源文件中mapper是包结构:com.wzh.mapper,而在resource文件中是文件结构:com/wzh/mapper)

<!--先引入头文件-->
<?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接口,必须要配置,不然启动便会报错,一般配置的是该接口的全限定类名(当然也可以不是,但是必须有值)-->
<mapper namespace="xxx"><!--查询标签--><!--其中findAll为此select标签的id,一般为namespace配置的mapper接口的方法的名称--><!--其中resultType该sql语句所要的返回值的类型--><select id="findAll" resultType="com.wzh.pojo.Dept"><!--编写查询的失去了语句-->select * from dept</select><!--插入标签--><!--id作用同上--><!--parameterType表示的是参数的类型,这里我们参数的类型是 pojo实体类--><insert id="insert" parameterType="com.wzh.pojo.Dept"><!--编写sql语句--><!--其中#{}相当与原生jdbc中的?,同样是使用preperStatement来进行预编译--><!--其中我们传入的参数类型是一个对象,但是我们依旧可以直接#{属性名}来获取它的值-->insert into dept (deptno,dname) values (#{deptno},#{dname})</insert><!--删除标签--><!--由于我们传入的参数是int类型,所以可以不在这里配置parameterType--><!--其实只要是基本数据类型以及它的包装类型,或者是String类型都可以不用配置--><delete id="del"><!--这里需要注意的是,由于我们只有一个int类型的参数,所以这里#{参数名}中的参数名可以随便		点,比如写id,empno,eid等等都是可以的。-->delete from dept where empno=#{empno}</delete>
</mapper>

二,mybatis的使用步骤,经过以上的5步步骤,那么我们的mybatis就可以使用了

//1,首先加载主配置文件
Inpustream is = Resources.getResourceAsStream("mybatis-config.xml");
//2,创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3,使用builder对象获取SqlSessionFactory对象
SqlSessionFactory factory = builder.build(is);
//4,使用factory对象来开启一个会话
SqlSession session = factory.openSession();
//5,更具session对象来获取一个Mapper对象
DeptMapper mapper = session.getMapper(DeptMapper.class);
//6,调用方法
List<Dept> depts = mapper.findAll();
//7,关闭session会话与流
session.close();
is.close();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue的Prop属性

转载自 PropProp 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的&#xff0c;所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时&#xff0c;camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名…

.NET Core 1.1 Preview 1上线:支持macOS 10.12/Linux Mint 18

自2014年以来微软陆续对.NET Framework的核心组件进行开源&#xff0c;去年2月公司完成进度并向开源社区发布.NET CoreCLR。经过一年多的发展&#xff0c;开发者于今年6月获得.NET Core 1.0&#xff1b;而现在公司再次推出了1.1 Preview 1版本。 本次版本更新包括添加了多款Lin…

3-7 基于SpringBoot的Apache Shiro环境快速搭建与配置实操

去网站上 spring.io https://start.spring.io/ 去网站拉一个模板下拉 下载一个模板 打开后看一下 使用的pom.xml 我们要用到数据库 使用一个数据库的管理 阿里巴巴的druid 这个是sping非常常用的工具包经常使用的 字符串日期操作都使用这个 springframwork是…

反射、HashMap、ArrayList与LinkedList区别

1&#xff0c;反射机制答&#xff1a;JAVA反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff1b;这种动态获取信息以及动态调用对象方法的功能称为…

vue非编译的模块化写法

项目目录 ●/ ●index.html ●js/ ●main.js ●myComponent.js ●routes.js ●textComponent.js ●lib/ ●vue.js ●vue-router.js ●require.min.js 一、构建require.js环境 &#xff08;1&#x…

3-8 基于SpringBoot连接数据库与配置MyBatis实操 创建表sql

11 13-8 基于SpringBoot连接数据库与配置MyBatis实操 springSecurity提供了 现成的基于内存管理的类 shiro则必须自己设计这样的类 需要自己设计用户权限这样的体系 这里基于RBAC简单的设计一套 -- 权限表 -- CREATE TABLE permission (pi…

struts基本概念(1)

model1:1,纯jsp2.jspjavabeanmodel2&#xff1a;MVC: jspservletjavabean m:model (模型)封装数据&#xff0c;业务处理类 &#xff0c;返回处理结果v:view(视图)展示数据c&#xff1a;cotroller&#xff08;控制器&#xff09;处理请求&#xff0c;模型和视图之间进行转换DTD…

使用 RxJS 实现 JavaScript 的 Reactive 编程

简介 作为有经验的JavaScript开发者&#xff0c;我们会在代码中采用一定程度的异步代码。我们不断地处理用户的输入请求&#xff0c;也从远程获取数据&#xff0c;或者同时运行耗时的计算任务&#xff0c;所有这些都不能让浏览器崩溃。可以说&#xff0c;这些都不是琐碎的任务&…

vue组件自定义v-model

转载自 vue组件&#xff0c;自定义v-model方法1<my-component v-model"obj"></my-component>在使用my-component组件时&#xff0c;为了实现双向绑定。1234567891011121314Vue.component(my-component, {props: {obj: Object,},model: {prop: obj,event…

权限管理系统

11 已经有现成的spring Security 和 Apache shiro 为什么还要开发自己的一套权限管理系统 1.必须按照框架的要求进行配置&#xff0c;会被框架限制&#xff0c;差一点点就转不起来&#xff0c;犯一点点错误都不行&#xff0c; 2.没有界面操作&#xff0c;和查看&#xf…

vue watch监听对象

一、watch的API vm.$watch( expOrFn, callback, [options] ) 参数&#xff1a; {string | Function} expOrFn{Function | Object} callback{Object} [options] {boolean} deep{boolean} immediate 返回值&#xff1a;{Function} unwatch 用法&#xff1a; 观察 Vue 实例变化的…

从.NET和Java之争谈IT这个行业

一、有些事情难以回头 开篇我得表名自己的立场:.NET JAVA同时使用者,但更加偏爱.NET.原因很简单 1.NET语言更具开放性,从开源协议和规范可以看出; 2.语言更具优势严谨; 3.开发工具VS更具生产力; 然而 1.Java,C#的职位比率在4:1,虽然这不是什么问题,因为求职竞争的比例更大(JAVA…

权限管理系统2_权限表,权限模块表

CREATE TABLE sys_acl_module ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 权限模块id, name varchar(20) NOT NULL DEFAULT COMMENT 权限模块名称, parent_id int(11) NOT NULL DEFAULT 0 COMMENT 上级权限模块id, level varchar(200) NOT NULL DEFAULT COMMENT …

struts基本概念(2)

一、struts使用步骤&#xff1a;1.导包&#xff08;基本&#xff09;2.web.xml配置struts控制器 C3.页面开发 V4.处理类开发 M()5.配置struts.xml 6.部署运行二、struts访问session(servlet )1.解耦方式:ActionContext Map 2.耦合方式:ServletActionContextHttpSession 三…

vue2.0 $router和$route的区别

转载自 vue2.0 $router和$route的区别在vue2.0里页面参数是 this.$route.query或者 this.$route.params 接收router-link传的参数。 在路由跳转的时候除了用router-link标签以外需要在script标签在事件里面跳转&#xff0c;所以有个方法就是在script标签里面写this.$router.pu…

基于Bootstrap 3.x的免费高级管理控制面板主题:AdminLTE

AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题。AdminLTE - 是一个完全响应式管理模板。基于Bootstrap3框架。高度可定制的&#xff0c;易于使用。适合从小型移动设备到大型台式机很多的屏幕分辨率。 在线预览: http://almsaeedstudio.com/preview/ AdminLTE 在…

Spring MVC开发环境搭建

现在springMVC是非常常用的框架&#xff0c;很多公司的内部都是使用这个框架 打开maven查询jar包的网址 mvnrepository.com 测试是否成功 war:只是运行 war expord: 运行且调试

Redola.Rpc 的一个小目标:20000 tps

Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标&#xff1a;20000 tps。 Concurrency level: 8 threadsComplete requests: 20000 Time taken for tests: 0.886 secondsTime per request: 0.044 ms (avg)Requests per second: 22573 [#/sec] (avg) Concurrency level: 8 thr…

vue 动态修改路由参数

转载自 vue 动态修改路由参数 import merge from webpack-merge&#xff1b;修改原有参数 this.$router.push({query:merge(this.$route.query,{maxPrice:630}) })新增一个参数&#xff1a; this.$router.push({query:merge(this.$route.query,{addParams:我是新增的一…

2016年寒假心得

对于上学的孩子来说每年都有寒假&#xff0c;可是一样的寒假总是不一样的玩法。自从高中毕业之后&#xff0c;很少动笔写文了&#xff0c;这次就好好的写一下吧&#xff01;咱的文笔也不是很好&#xff0c;就写个最简单的流水状大家凑合的看看吧&#xff01;&#xff01;&#…